Add per-platform custom action support.
Bob Arnson committed
Jul 4, 2020 at 19:02 UTC
ecb774445b177c739864cbd0f6ad441c7864e3be
14 files changed
+151
-83
Http.wixext.sln
+2
-2
@@ -1,7 +1,7 @@
1
2
Microsoft Visual Studio Solution File, Format Version 12.00
3
-# Visual Studio 15
4
-VisualStudioVersion = 15.0.28010.2016
3
+# Visual Studio Version 16
4
+VisualStudioVersion = 16.0.30204.135
5
MinimumVisualStudioVersion = 10.0.40219.1
6
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "httpca", "src\ca\httpca.vcxproj", "{90743805-C043-47C7-B5FF-8F5EE5C8A2DE}"
7
EndProject
src/ca/caDecor.h
new
+13
@@ -0,0 +1,13 @@
1
+#pragma once
2
+// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3
+
4
+
5
+#if defined(_M_ARM64)
6
+#define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_A64"
7
+#elif defined(_M_AMD64)
8
+#define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_X64"
9
+#elif defined(_M_ARM)
10
+#define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_ARM"
11
+#else
12
+#define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_X86"
13
+#endif
src/ca/httpca.vcxproj
+34
-16
@@ -1,10 +1,9 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
-
3
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4
<Import Project="..\..\packages\WixToolset.DUtil.4.0.30\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.30\build\WixToolset.DUtil.props')" />
5
<Import Project="..\..\packages\WixToolset.WcaUtil.4.0.16\build\WixToolset.WcaUtil.props" Condition="Exists('..\..\packages\WixToolset.WcaUtil.4.0.16\build\WixToolset.WcaUtil.props')" />
7
-
6
+
7
<ItemGroup Label="ProjectConfigurations">
8
<ProjectConfiguration Include="Debug|Win32">
9
<Configuration>Debug</Configuration>
@@ -14,44 +13,63 @@
13
<Configuration>Release</Configuration>
14
<Platform>Win32</Platform>
15
</ProjectConfiguration>
16
+ <ProjectConfiguration Include="Debug|x64">
17
+ <Configuration>Debug</Configuration>
18
+ <Platform>x64</Platform>
19
+ </ProjectConfiguration>
20
+ <ProjectConfiguration Include="Release|x64">
21
+ <Configuration>Release</Configuration>
22
+ <Platform>x64</Platform>
23
+ </ProjectConfiguration>
24
+ <ProjectConfiguration Include="Debug|ARM">
25
+ <Configuration>Debug</Configuration>
26
+ <Platform>ARM</Platform>
27
+ </ProjectConfiguration>
28
+ <ProjectConfiguration Include="Release|ARM">
29
+ <Configuration>Release</Configuration>
30
+ <Platform>ARM</Platform>
31
+ </ProjectConfiguration>
32
+ <ProjectConfiguration Include="Debug|ARM64">
33
+ <Configuration>Debug</Configuration>
34
+ <Platform>ARM64</Platform>
35
+ </ProjectConfiguration>
36
+ <ProjectConfiguration Include="Release|ARM64">
37
+ <Configuration>Release</Configuration>
38
+ <Platform>ARM64</Platform>
39
+ </ProjectConfiguration>
40
</ItemGroup>
18
-
41
+
42
<PropertyGroup Label="Globals">
43
<ProjectGuid>{90743805-C043-47C7-B5FF-8F5EE5C8A2DE}</ProjectGuid>
44
<ConfigurationType>DynamicLibrary</ConfigurationType>
22
- <PlatformToolset>v141</PlatformToolset>
45
+ <PlatformToolset>v142</PlatformToolset>
46
<CharacterSet>Unicode</CharacterSet>
47
<TargetName>httpca</TargetName>
48
<ProjectModuleDefinitionFile>wixhttpca.def</ProjectModuleDefinitionFile>
49
<Description>WiX Toolset Http CustomAction</Description>
50
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
51
</PropertyGroup>
28
-
52
+
53
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
54
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
31
-
55
+
56
<PropertyGroup>
57
<ProjectAdditionalLinkLibraries>crypt32.lib;httpapi.lib;msi.lib</ProjectAdditionalLinkLibraries>
58
</PropertyGroup>
35
-
59
+
60
<ItemGroup>
61
<ClCompile Include="dllmain.cpp">
62
<PrecompiledHeader>Create</PrecompiledHeader>
63
</ClCompile>
64
<ClCompile Include="wixhttpca.cpp" />
41
- </ItemGroup>
42
-
43
- <ItemGroup>
65
<ClInclude Include="cost.h" />
66
<ClInclude Include="precomp.h" />
46
- </ItemGroup>
47
-
48
- <ItemGroup>
67
<None Include="packages.config" />
68
<None Include="wixhttpca.def" />
69
</ItemGroup>
52
-
70
+
71
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
54
-
72
+
73
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
74
<PropertyGroup>
75
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
@@ -59,4 +77,4 @@
77
<Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.30\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.30\build\WixToolset.DUtil.props'))" />
78
<Error Condition="!Exists('..\..\packages\WixToolset.WcaUtil.4.0.16\build\WixToolset.WcaUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.WcaUtil.4.0.16\build\WixToolset.WcaUtil.props'))" />
79
</Target>
62
-</Project>
80
+</Project>
\ No newline at end of file
src/ca/httpca.vcxproj.filters
+4
@@ -26,10 +26,14 @@
26
<ClInclude Include="precomp.h">
27
<Filter>Header Files</Filter>
28
</ClInclude>
29
+ <ClInclude Include="cost.h">
30
+ <Filter>Header Files</Filter>
31
+ </ClInclude>
32
</ItemGroup>
33
<ItemGroup>
34
<None Include="wixhttpca.def">
35
<Filter>Source Files</Filter>
36
</None>
37
+ <None Include="packages.config" />
38
</ItemGroup>
39
</Project>
\ No newline at end of file
src/ca/precomp.h
+2
@@ -14,3 +14,5 @@
14
#include "aclutil.h"
15
16
#include "cost.h"
17
+
18
+#include "caDecor.h"
src/ca/wixhttpca.cpp
+5
-4
@@ -193,16 +193,16 @@ static UINT SchedHttpUrlReservations(
193
194
if (WCA_TODO_INSTALL == todoSched)
195
{
196
- hr = WcaDoDeferredAction(L"WixRollbackHttpUrlReservationsInstall", sczRollbackCustomActionData, cUrlReservations * COST_HTTP_URL_ACL);
196
+ hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"WixRollbackHttpUrlReservationsInstall"), sczRollbackCustomActionData, cUrlReservations * COST_HTTP_URL_ACL);
197
ExitOnFailure(hr, "Failed to schedule install URL reservations rollback.");
198
- hr = WcaDoDeferredAction(L"WixExecHttpUrlReservationsInstall", sczCustomActionData, cUrlReservations * COST_HTTP_URL_ACL);
198
+ hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"WixExecHttpUrlReservationsInstall"), sczCustomActionData, cUrlReservations * COST_HTTP_URL_ACL);
199
ExitOnFailure(hr, "Failed to schedule install URL reservations execution.");
200
}
201
else
202
{
203
- hr = WcaDoDeferredAction(L"WixRollbackHttpUrlReservationsUninstall", sczRollbackCustomActionData, cUrlReservations * COST_HTTP_URL_ACL);
203
+ hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"WixRollbackHttpUrlReservationsUninstall"), sczRollbackCustomActionData, cUrlReservations * COST_HTTP_URL_ACL);
204
ExitOnFailure(hr, "Failed to schedule uninstall URL reservations rollback.");
205
- hr = WcaDoDeferredAction(L"WixExecHttpUrlReservationsUninstall", sczCustomActionData, cUrlReservations * COST_HTTP_URL_ACL);
205
+ hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"WixExecHttpUrlReservationsUninstall"), sczCustomActionData, cUrlReservations * COST_HTTP_URL_ACL);
206
ExitOnFailure(hr, "Failed to schedule uninstall URL reservations execution.");
207
}
208
}
@@ -210,6 +210,7 @@ static UINT SchedHttpUrlReservations(
210
{
211
WcaLog(LOGMSG_STANDARD, "No URL reservations scheduled.");
212
}
213
+
214
LExit:
215
ReleaseStr(sczSDDL);
216
ReleaseStr(sczExistingSDDL);
src/wixext/HttpCompiler.cs
+3
-12
@@ -7,6 +7,7 @@ namespace WixToolset.Http
7
using System.Xml.Linq;
8
using WixToolset.Data;
9
using WixToolset.Extensibility;
10
+ using WixToolset.Extensibility.Data;
11
using WixToolset.Http.Symbols;
12
13
/// <summary>
@@ -177,18 +178,8 @@ namespace WixToolset.Http
178
ComponentRef = componentId,
179
});
180
180
- if (this.Context.Platform == Platform.ARM)
181
- {
182
- // Ensure ARM version of the CA is referenced.
183
- this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.CustomAction, "WixSchedHttpUrlReservationsInstall_ARM");
184
- this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.CustomAction, "WixSchedHttpUrlReservationsUninstall_ARM");
185
- }
186
- else
187
- {
188
- // All other supported platforms use x86.
189
- this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.CustomAction, "WixSchedHttpUrlReservationsInstall");
190
- this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.CustomAction, "WixSchedHttpUrlReservationsUninstall");
191
- }
181
+ this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedHttpUrlReservationsInstall", this.Context.Platform, CustomActionPlatforms.X86 | CustomActionPlatforms.X64 | CustomActionPlatforms.ARM | CustomActionPlatforms.ARM64);
182
+ this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedHttpUrlReservationsUninstall", this.Context.Platform, CustomActionPlatforms.X86 | CustomActionPlatforms.X64 | CustomActionPlatforms.ARM | CustomActionPlatforms.ARM64);
183
}
184
}
185
src/wixlib/HttpExtension_Platform.wxi
+17
-15
@@ -3,37 +3,39 @@
3
4
5
<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">
6
- <?include caSuffix.wxi ?>
6
+ <?include caDecor.wxi ?>
7
+
8
<Fragment>
9
<UIRef Id="WixHttpErrors" />
10
<UI>
10
- <ProgressText Action="WixSchedHttpUrlReservationsInstall$(var.Suffix)">!(loc.WixSchedHttpUrlReservationsInstall)</ProgressText>
11
- <ProgressText Action="WixSchedHttpUrlReservationsUninstall$(var.Suffix)">!(loc.WixSchedHttpUrlReservationsUninstall)</ProgressText>
12
- <ProgressText Action="WixRollbackHttpUrlReservationsInstall$(var.DeferredSuffix)">!(loc.WixRollbackHttpUrlReservationsInstall)</ProgressText>
13
- <ProgressText Action="WixExecHttpUrlReservationsInstall$(var.DeferredSuffix)">!(loc.WixExecHttpUrlReservationsInstall)</ProgressText>
14
- <ProgressText Action="WixRollbackHttpUrlReservationsUninstall$(var.DeferredSuffix)">!(loc.WixRollbackHttpUrlReservationsUninstall)</ProgressText>
15
- <ProgressText Action="WixExecHttpUrlReservationsUninstall$(var.DeferredSuffix)">!(loc.WixExecHttpUrlReservationsUninstall)</ProgressText>
11
+ <ProgressText Action="$(var.Prefix)SchedHttpUrlReservationsInstall$(var.Suffix)">!(loc.WixSchedHttpUrlReservationsInstall)</ProgressText>
12
+ <ProgressText Action="$(var.Prefix)SchedHttpUrlReservationsUninstall$(var.Suffix)">!(loc.WixSchedHttpUrlReservationsUninstall)</ProgressText>
13
+ <ProgressText Action="$(var.Prefix)RollbackHttpUrlReservationsInstall$(var.Suffix)">!(loc.WixRollbackHttpUrlReservationsInstall)</ProgressText>
14
+ <ProgressText Action="$(var.Prefix)ExecHttpUrlReservationsInstall$(var.Suffix)">!(loc.WixExecHttpUrlReservationsInstall)</ProgressText>
15
+ <ProgressText Action="$(var.Prefix)RollbackHttpUrlReservationsUninstall$(var.Suffix)">!(loc.WixRollbackHttpUrlReservationsUninstall)</ProgressText>
16
+ <ProgressText Action="$(var.Prefix)ExecHttpUrlReservationsUninstall$(var.Suffix)">!(loc.WixExecHttpUrlReservationsUninstall)</ProgressText>
17
</UI>
18
18
- <CustomAction Id="WixSchedHttpUrlReservationsInstall$(var.Suffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="SchedHttpUrlReservationsInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
19
- <CustomAction Id="WixSchedHttpUrlReservationsUninstall$(var.Suffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="SchedHttpUrlReservationsUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
20
- <CustomAction Id="WixRollbackHttpUrlReservationsInstall$(var.DeferredSuffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="ExecHttpUrlReservations" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" />
21
- <CustomAction Id="WixExecHttpUrlReservationsInstall$(var.DeferredSuffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="ExecHttpUrlReservations" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" />
22
- <CustomAction Id="WixRollbackHttpUrlReservationsUninstall$(var.DeferredSuffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="ExecHttpUrlReservations" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" />
23
- <CustomAction Id="WixExecHttpUrlReservationsUninstall$(var.DeferredSuffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="ExecHttpUrlReservations" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" />
19
+ <CustomAction Id="$(var.Prefix)SchedHttpUrlReservationsInstall$(var.Suffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="SchedHttpUrlReservationsInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
20
+ <CustomAction Id="$(var.Prefix)SchedHttpUrlReservationsUninstall$(var.Suffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="SchedHttpUrlReservationsUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
21
+ <CustomAction Id="$(var.Prefix)RollbackHttpUrlReservationsInstall$(var.Suffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="ExecHttpUrlReservations" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" />
22
+ <CustomAction Id="$(var.Prefix)ExecHttpUrlReservationsInstall$(var.Suffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="ExecHttpUrlReservations" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" />
23
+ <CustomAction Id="$(var.Prefix)RollbackHttpUrlReservationsUninstall$(var.Suffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="ExecHttpUrlReservations" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" />
24
+ <CustomAction Id="$(var.Prefix)ExecHttpUrlReservationsUninstall$(var.Suffix)" BinaryKey="HttpCA$(var.Suffix)" DllEntry="ExecHttpUrlReservations" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" />
25
26
<!--
27
We need the HTTP server on Windows XP SP2 or later.
28
-->
29
<InstallExecuteSequence>
29
- <Custom Action="WixSchedHttpUrlReservationsUninstall$(var.Suffix)" Before="RemoveFiles" Overridable="yes">
30
+ <Custom Action="$(var.Prefix)SchedHttpUrlReservationsUninstall$(var.Suffix)" Before="RemoveFiles" Overridable="yes">
31
<![CDATA[ VersionNT >= 600 OR (VersionNT >= 501 AND ((MsiNTProductType = 1 AND ServicePackLevel >= 2) OR (MsiNTProductType > 1))) ]]>
32
</Custom>
32
- <Custom Action="WixSchedHttpUrlReservationsInstall$(var.Suffix)" After="InstallFiles" Overridable="yes">
33
+ <Custom Action="$(var.Prefix)SchedHttpUrlReservationsInstall$(var.Suffix)" After="InstallFiles" Overridable="yes">
34
<![CDATA[ VersionNT >= 600 OR (VersionNT >= 501 AND ((MsiNTProductType = 1 AND ServicePackLevel >= 2) OR (MsiNTProductType > 1))) ]]>
35
</Custom>
36
</InstallExecuteSequence>
37
</Fragment>
38
+
39
<Fragment>
40
<Binary Id="HttpCA$(var.Suffix)" SourceFile="!(bindpath.$(var.platform))httpca.dll" />
41
</Fragment>
src/wixlib/HttpExtension_arm.wxs
new
+8
@@ -0,0 +1,8 @@
1
+<?xml version="1.0"?>
2
+<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
+
4
+
5
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
6
+ <?define platform=arm ?>
7
+ <?include HttpExtension_Platform.wxi ?>
8
+</Wix>
src/wixlib/HttpExtension_arm64.wxs
new
+8
@@ -0,0 +1,8 @@
1
+<?xml version="1.0"?>
2
+<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
+
4
+
5
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
6
+ <?define platform=arm64 ?>
7
+ <?include HttpExtension_Platform.wxi ?>
8
+</Wix>
src/wixlib/HttpExtension_x64.wxs
new
+8
@@ -0,0 +1,8 @@
1
+<?xml version="1.0"?>
2
+<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
+
4
+
5
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
6
+ <?define platform=x64 ?>
7
+ <?include HttpExtension_Platform.wxi ?>
8
+</Wix>
src/wixlib/caDecor.wxi
new
+40
@@ -0,0 +1,40 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
+
4
+
5
+<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
6
+ <?ifdef Prefix ?>
7
+ <?undef Prefix ?>
8
+ <?endif ?>
9
+
10
+ <?define Prefix="Wix4" ?>
11
+
12
+ <?ifndef platform ?>
13
+ <?define platform="x86" ?>
14
+ <?endif ?>
15
+
16
+ <?if $(var.platform)="" ?>
17
+ <?undef platform ?>
18
+ <?define platform="x86" ?>
19
+ <?endif ?>
20
+
21
+ <?ifdef Suffix ?>
22
+ <?undef Suffix ?>
23
+ <?endif ?>
24
+
25
+ <?if $(var.platform)~="x86" ?>
26
+ <?define Suffix="_X86" ?>
27
+ <?endif ?>
28
+
29
+ <?if $(var.platform)~="x64" ?>
30
+ <?define Suffix="_X64" ?>
31
+ <?endif ?>
32
+
33
+ <?if $(var.platform)~="arm" ?>
34
+ <?define Suffix="_A32" ?>
35
+ <?endif ?>
36
+
37
+ <?if $(var.platform)~="arm64" ?>
38
+ <?define Suffix="_A64" ?>
39
+ <?endif ?>
40
+</Include>
src/wixlib/caSuffix.wxi
deleted
-28
@@ -1,28 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8"?>
2
-<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
-
4
-<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">
5
- <?ifndef platform ?>
6
- <?error Required value "platform" not defined in include caSuffix.wxi ?>
7
- <?endif ?>
8
-
9
- <?ifdef Suffix ?>
10
- <?undef Suffix ?>
11
- <?undef DeferredSuffix ?>
12
- <?endif ?>
13
-
14
- <?if $(var.platform)="x86" ?>
15
- <?define Suffix="" ?>
16
- <?define DeferredSuffix="" ?>
17
- <?endif ?>
18
-
19
- <?if $(var.platform)="x64" ?>
20
- <?define Suffix="_x64" ?>
21
- <?define DeferredSuffix="_64" ?>
22
- <?endif ?>
23
-
24
- <?if $(var.platform)="arm" ?>
25
- <?define Suffix="_ARM" ?>
26
- <?define DeferredSuffix="_ARM" ?>
27
- <?endif ?>
28
-</Include>
src/wixlib/http.wixproj
+7
-6
@@ -1,18 +1,19 @@
1
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2
<Project Sdk="WixToolset.Sdk">
3
-
3
<PropertyGroup>
4
<OutputType>Library</OutputType>
5
<BindFiles>true</BindFiles>
6
<Cultures>en-us</Cultures>
7
</PropertyGroup>
9
-
8
+
9
<ItemGroup>
11
- <ProjectReference Include="..\ca\httpca.vcxproj" />
10
+ <ProjectReference Include="..\ca\httpca.vcxproj" Properties="Platform=ARM" />
11
+ <ProjectReference Include="..\ca\httpca.vcxproj" Properties="Platform=ARM64" />
12
+ <ProjectReference Include="..\ca\httpca.vcxproj" Properties="Platform=x86" />
13
+ <ProjectReference Include="..\ca\httpca.vcxproj" Properties="Platform=x64" />
14
</ItemGroup>
13
-
15
+
16
<ItemGroup>
17
<PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="All" />
18
</ItemGroup>
17
-
18
-</Project>
19
+</Project>
\ No newline at end of file