aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ext/ComPlus/ComPlus.wixext.sln4
-rw-r--r--src/ext/ComPlus/ca/complusca.vcxproj8
-rw-r--r--src/ext/ComPlus/ca/cpapprolesched.cpp8
-rw-r--r--src/ext/ComPlus/ca/cpappsched.cpp4
-rw-r--r--src/ext/ComPlus/ca/cpasmsched.cpp22
-rw-r--r--src/ext/ComPlus/ca/cppartrolesched.cpp6
-rw-r--r--src/ext/ComPlus/ca/cppartsched.cpp6
-rw-r--r--src/ext/ComPlus/ca/cpsubssched.cpp4
-rw-r--r--src/ext/ComPlus/ca/cputilsched.cpp2
-rw-r--r--src/ext/ComPlus/test/WixToolsetTest.ComPlus/ComPlusExtensionFixture.cs23
-rw-r--r--src/ext/ComPlus/test/WixToolsetTest.ComPlus/TestData/UsingComPlusPartition/Package.wxs4
-rw-r--r--src/ext/ComPlus/wixext/ComPlusCompiler.cs15
-rw-r--r--src/ext/ComPlus/wixext/ComPlusTableDefinitions.cs50
-rw-r--r--src/ext/ComPlus/wixlib/ComPlusExtension.wxs122
-rw-r--r--src/ext/ComPlus/wixlib/ComPlusExtension_Platform.wxi44
-rw-r--r--src/ext/ComPlus/wixlib/ComPlusExtension_arm64.wxs7
-rw-r--r--src/ext/ComPlus/wixlib/ComPlusExtension_x64.wxs7
-rw-r--r--src/ext/ComPlus/wixlib/ComPlusExtension_x86.wxs7
-rw-r--r--src/ext/ComPlus/wixlib/complus.wixproj6
-rw-r--r--src/ext/Msmq/Msmq.wixext.sln4
-rw-r--r--src/ext/Msmq/ca/mqqueuesched.cpp6
-rw-r--r--src/ext/Msmq/ca/mqutilexec.cpp4
-rw-r--r--src/ext/Msmq/ca/mqutilsched.cpp43
-rw-r--r--src/ext/Msmq/ca/mqutilsched.h9
-rw-r--r--src/ext/Msmq/ca/msmqca.vcxproj30
-rw-r--r--src/ext/Msmq/ca/precomp.h1
-rw-r--r--src/ext/Msmq/test/WixToolsetTest.Msmq/MsmqExtensionFixture.cs16
-rw-r--r--src/ext/Msmq/test/WixToolsetTest.Msmq/TestData/UsingMessageQueue/Package.wxs4
-rw-r--r--src/ext/Msmq/wixext/MsmqCompiler.cs6
-rw-r--r--src/ext/Msmq/wixext/MsmqTableDefinitions.cs6
-rw-r--r--src/ext/Msmq/wixlib/MsmqExtension.wxs33
-rw-r--r--src/ext/Msmq/wixlib/MsmqExtension_Platform.wxi26
-rw-r--r--src/ext/Msmq/wixlib/MsmqExtension_arm64.wxs7
-rw-r--r--src/ext/Msmq/wixlib/MsmqExtension_x64.wxs7
-rw-r--r--src/ext/Msmq/wixlib/MsmqExtension_x86.wxs7
-rw-r--r--src/ext/Msmq/wixlib/msmq.wixproj10
-rw-r--r--src/ext/Util/wixlib/UtilExtension.wxs1
-rw-r--r--src/ext/Util/wixlib/util.wixproj12
38 files changed, 292 insertions, 289 deletions
diff --git a/src/ext/ComPlus/ComPlus.wixext.sln b/src/ext/ComPlus/ComPlus.wixext.sln
index 06302fa2..6249fef0 100644
--- a/src/ext/ComPlus/ComPlus.wixext.sln
+++ b/src/ext/ComPlus/ComPlus.wixext.sln
@@ -1,7 +1,7 @@
1 1
2Microsoft Visual Studio Solution File, Format Version 12.00 2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16 3# Visual Studio Version 17
4VisualStudioVersion = 16.0.30611.23 4VisualStudioVersion = 17.0.32126.317
5MinimumVisualStudioVersion = 10.0.40219.1 5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "complusca", "ca\complusca.vcxproj", "{BDEF51ED-E242-4FA2-801A-01B127DF851A}" 6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "complusca", "ca\complusca.vcxproj", "{BDEF51ED-E242-4FA2-801A-01B127DF851A}"
7EndProject 7EndProject
diff --git a/src/ext/ComPlus/ca/complusca.vcxproj b/src/ext/ComPlus/ca/complusca.vcxproj
index 0bd490b1..696f7dd8 100644
--- a/src/ext/ComPlus/ca/complusca.vcxproj
+++ b/src/ext/ComPlus/ca/complusca.vcxproj
@@ -19,6 +19,14 @@
19 <Configuration>Release</Configuration> 19 <Configuration>Release</Configuration>
20 <Platform>x64</Platform> 20 <Platform>x64</Platform>
21 </ProjectConfiguration> 21 </ProjectConfiguration>
22 <ProjectConfiguration Include="Debug|ARM64">
23 <Configuration>Debug</Configuration>
24 <Platform>ARM64</Platform>
25 </ProjectConfiguration>
26 <ProjectConfiguration Include="Release|ARM64">
27 <Configuration>Release</Configuration>
28 <Platform>ARM64</Platform>
29 </ProjectConfiguration>
22 </ItemGroup> 30 </ItemGroup>
23 31
24 <PropertyGroup Label="Globals"> 32 <PropertyGroup Label="Globals">
diff --git a/src/ext/ComPlus/ca/cpapprolesched.cpp b/src/ext/ComPlus/ca/cpapprolesched.cpp
index a268d156..d4f5d2be 100644
--- a/src/ext/ComPlus/ca/cpapprolesched.cpp
+++ b/src/ext/ComPlus/ca/cpapprolesched.cpp
@@ -6,17 +6,17 @@
6// sql queries 6// sql queries
7 7
8LPCWSTR vcsApplicationRoleQuery = 8LPCWSTR vcsApplicationRoleQuery =
9 L"SELECT `ApplicationRole`, `Application_`, `Component_`, `Name` FROM `ComPlusApplicationRole`"; 9 L"SELECT `ApplicationRole`, `Application_`, `Component_`, `Name` FROM `Wix4ComPlusApplicationRole`";
10enum eApplicationRoleQuery { arqApplicationRole = 1, arqApplication, arqComponent, arqName }; 10enum eApplicationRoleQuery { arqApplicationRole = 1, arqApplication, arqComponent, arqName };
11 11
12LPCWSTR vcsUserInApplicationRoleQuery = 12LPCWSTR vcsUserInApplicationRoleQuery =
13 L"SELECT `UserInApplicationRole`, `ApplicationRole_`, `ComPlusUserInApplicationRole`.`Component_`, `Domain`, `Name` FROM `ComPlusUserInApplicationRole`, `User` WHERE `User_` = `User`"; 13 L"SELECT `UserInApplicationRole`, `ApplicationRole_`, `ComPlusUserInApplicationRole`.`Component_`, `Domain`, `Name` FROM `Wix4ComPlusUserInApplicationRole`, `Wix4User` WHERE `User_` = `User`";
14LPCWSTR vcsGroupInApplicationRoleQuery = 14LPCWSTR vcsGroupInApplicationRoleQuery =
15 L"SELECT `GroupInApplicationRole`, `ApplicationRole_`, `ComPlusGroupInApplicationRole`.`Component_`, `Domain`, `Name` FROM `ComPlusGroupInApplicationRole`, `Group` WHERE `Group_` = `Group`"; 15 L"SELECT `GroupInApplicationRole`, `ApplicationRole_`, `ComPlusGroupInApplicationRole`.`Component_`, `Domain`, `Name` FROM `Wix4ComPlusGroupInApplicationRole`, `Group` WHERE `Group_` = `Group`";
16enum eTrusteeInApplicationRoleQuery { tiarqUserInApplicationRole = 1, tiarqApplicationRole, tiarqComponent, tiarqDomain, tiarqName }; 16enum eTrusteeInApplicationRoleQuery { tiarqUserInApplicationRole = 1, tiarqApplicationRole, tiarqComponent, tiarqDomain, tiarqName };
17 17
18LPCWSTR vcsApplicationRolePropertyQuery = 18LPCWSTR vcsApplicationRolePropertyQuery =
19 L"SELECT `Name`, `Value` FROM `ComPlusApplicationRoleProperty` WHERE `ApplicationRole_` = ?"; 19 L"SELECT `Name`, `Value` FROM `Wix4ComPlusApplicationRoleProperty` WHERE `ApplicationRole_` = ?";
20 20
21 21
22// property definitions 22// property definitions
diff --git a/src/ext/ComPlus/ca/cpappsched.cpp b/src/ext/ComPlus/ca/cpappsched.cpp
index 1fb2203b..4d867f6b 100644
--- a/src/ext/ComPlus/ca/cpappsched.cpp
+++ b/src/ext/ComPlus/ca/cpappsched.cpp
@@ -6,11 +6,11 @@
6// sql queries 6// sql queries
7 7
8LPCWSTR vcsApplicationQuery = 8LPCWSTR vcsApplicationQuery =
9 L"SELECT `Application`, `Component_`, `Partition_`, `Id`, `Name` FROM `ComPlusApplication`"; 9 L"SELECT `Application`, `Component_`, `Partition_`, `Id`, `Name` FROM `Wix4ComPlusApplication`";
10enum eApplicationQuery { aqApplication = 1, aqComponent, aqPartition, aqID, aqName }; 10enum eApplicationQuery { aqApplication = 1, aqComponent, aqPartition, aqID, aqName };
11 11
12LPCWSTR vcsApplicationPropertyQuery = 12LPCWSTR vcsApplicationPropertyQuery =
13 L"SELECT `Name`, `Value` FROM `ComPlusApplicationProperty` WHERE `Application_` = ?"; 13 L"SELECT `Name`, `Value` FROM `Wix4ComPlusApplicationProperty` WHERE `Application_` = ?";
14 14
15 15
16// property definitions 16// property definitions
diff --git a/src/ext/ComPlus/ca/cpasmsched.cpp b/src/ext/ComPlus/ca/cpasmsched.cpp
index 2d0573a5..325808de 100644
--- a/src/ext/ComPlus/ca/cpasmsched.cpp
+++ b/src/ext/ComPlus/ca/cpasmsched.cpp
@@ -14,36 +14,36 @@ LPCWSTR vcsModuleQuery =
14enum eModuleQuery { mqModule = 1 }; 14enum eModuleQuery { mqModule = 1 };
15 15
16LPCWSTR vcsAssemblyQuery = 16LPCWSTR vcsAssemblyQuery =
17 L"SELECT `Assembly`, `Component_`, `Application_`, `AssemblyName`, `DllPath`, `TlbPath`, `PSDllPath`, `Attributes` FROM `ComPlusAssembly`"; 17 L"SELECT `Assembly`, `Component_`, `Application_`, `AssemblyName`, `DllPath`, `TlbPath`, `PSDllPath`, `Attributes` FROM `Wix4ComPlusAssembly`";
18enum eAssemblyQuery { aqAssembly = 1, aqComponent, aqApplication, aqAssemblyName, aqDllPath, aqTlbPath, aqPSDllPath, aqAttributes }; 18enum eAssemblyQuery { aqAssembly = 1, aqComponent, aqApplication, aqAssemblyName, aqDllPath, aqTlbPath, aqPSDllPath, aqAttributes };
19 19
20LPCWSTR vcsComponentQuery = 20LPCWSTR vcsComponentQuery =
21 L"SELECT `ComPlusComponent`, `CLSID` FROM `ComPlusComponent` WHERE `Assembly_` = ?"; 21 L"SELECT `ComPlusComponent`, `CLSID` FROM `Wix4ComPlusComponent` WHERE `Assembly_` = ?";
22enum eComponentQuery { cqComponent = 1, cqCLSID }; 22enum eComponentQuery { cqComponent = 1, cqCLSID };
23 23
24LPCWSTR vcsComponentPropertyQuery = 24LPCWSTR vcsComponentPropertyQuery =
25 L"SELECT `Name`, `Value` FROM `ComPlusComponentProperty` WHERE `ComPlusComponent_` = ?"; 25 L"SELECT `Name`, `Value` FROM `Wix4ComPlusComponentProperty` WHERE `ComPlusComponent_` = ?";
26 26
27LPCWSTR vcsInterfaceQuery = 27LPCWSTR vcsInterfaceQuery =
28 L"SELECT `Interface`, `IID` FROM `ComPlusInterface` WHERE `ComPlusComponent_` = ?"; 28 L"SELECT `Interface`, `IID` FROM `Wix4ComPlusInterface` WHERE `ComPlusComponent_` = ?";
29enum eInterfaceQuery { iqInterface = 1, iqIID }; 29enum eInterfaceQuery { iqInterface = 1, iqIID };
30 30
31LPCWSTR vcsInterfacePropertyQuery = 31LPCWSTR vcsInterfacePropertyQuery =
32 L"SELECT `Name`, `Value` FROM `ComPlusInterfaceProperty` WHERE `Interface_` = ?"; 32 L"SELECT `Name`, `Value` FROM `Wix4ComPlusInterfaceProperty` WHERE `Interface_` = ?";
33 33
34LPCWSTR vcsMethodQuery = 34LPCWSTR vcsMethodQuery =
35 L"SELECT `Method`, `Index`, `Name` FROM `ComPlusMethod` WHERE `Interface_` = ?"; 35 L"SELECT `Method`, `Index`, `Name` FROM `Wix4ComPlusMethod` WHERE `Interface_` = ?";
36enum eMethodQuery { mqMethod = 1, mqIndex, mqName }; 36enum eMethodQuery { mqMethod = 1, mqIndex, mqName };
37 37
38LPCWSTR vcsMethodPropertyQuery = 38LPCWSTR vcsMethodPropertyQuery =
39 L"SELECT `Name`, `Value` FROM `ComPlusMethodProperty` WHERE `Method_` = ?"; 39 L"SELECT `Name`, `Value` FROM `Wix4ComPlusMethodProperty` WHERE `Method_` = ?";
40 40
41LPCWSTR vcsRoleForComponentQuery = 41LPCWSTR vcsRoleForComponentQuery =
42 L"SELECT `RoleForComponent`, `ApplicationRole_`, `Component_` FROM `ComPlusRoleForComponent` WHERE `ComPlusComponent_` = ?"; 42 L"SELECT `RoleForComponent`, `ApplicationRole_`, `Component_` FROM `Wix4ComPlusRoleForComponent` WHERE `ComPlusComponent_` = ?";
43LPCWSTR vcsRoleForInterfaceQuery = 43LPCWSTR vcsRoleForInterfaceQuery =
44 L"SELECT `RoleForInterface`, `ApplicationRole_`, `Component_` FROM `ComPlusRoleForInterface` WHERE `Interface_` = ?"; 44 L"SELECT `RoleForInterface`, `ApplicationRole_`, `Component_` FROM `Wix4ComPlusRoleForInterface` WHERE `Interface_` = ?";
45LPCWSTR vcsRoleForMethodQuery = 45LPCWSTR vcsRoleForMethodQuery =
46 L"SELECT `RoleForMethod`, `ApplicationRole_`, `Component_` FROM `ComPlusRoleForMethod` WHERE `Method_` = ?"; 46 L"SELECT `RoleForMethod`, `ApplicationRole_`, `Component_` FROM `Wix4ComPlusRoleForMethod` WHERE `Method_` = ?";
47 47
48enum eRoleAssignmentQuery { raqKey = 1, raqApplicationRole, raqComponent }; 48enum eRoleAssignmentQuery { raqKey = 1, raqApplicationRole, raqComponent };
49 49
@@ -52,7 +52,7 @@ LPCWSTR vcsModuleComponentsQuery =
52LPCWSTR vcsModuleDependencyQuery = 52LPCWSTR vcsModuleDependencyQuery =
53 L"SELECT `ModuleID`, `RequiredID` FROM `ModuleDependency`"; 53 L"SELECT `ModuleID`, `RequiredID` FROM `ModuleDependency`";
54LPCWSTR vcsAssemblyDependencyQuery = 54LPCWSTR vcsAssemblyDependencyQuery =
55 L"SELECT `Assembly_`, `RequiredAssembly_` FROM `ComPlusAssemblyDependency`"; 55 L"SELECT `Assembly_`, `RequiredAssembly_` FROM `Wix4ComPlusAssemblyDependency`";
56 56
57enum eKeyPairQuery { kpqFirstKey = 1, kpqSecondKey }; 57enum eKeyPairQuery { kpqFirstKey = 1, kpqSecondKey };
58 58
diff --git a/src/ext/ComPlus/ca/cppartrolesched.cpp b/src/ext/ComPlus/ca/cppartrolesched.cpp
index a988f8e3..cfaeb905 100644
--- a/src/ext/ComPlus/ca/cppartrolesched.cpp
+++ b/src/ext/ComPlus/ca/cppartrolesched.cpp
@@ -6,13 +6,13 @@
6// sql queries 6// sql queries
7 7
8LPCWSTR vcsPartitionRoleQuery = 8LPCWSTR vcsPartitionRoleQuery =
9 L"SELECT `PartitionRole`, `Partition_`, `Component_`, `Name` FROM `ComPlusPartitionRole`"; 9 L"SELECT `PartitionRole`, `Partition_`, `Component_`, `Name` FROM `Wix4ComPlusPartitionRole`";
10enum ePartitionRoleQuery { prqPartitionRole = 1, prqPartition, prqComponent, prqName }; 10enum ePartitionRoleQuery { prqPartitionRole = 1, prqPartition, prqComponent, prqName };
11 11
12LPCWSTR vcsUserInPartitionRoleQuery = 12LPCWSTR vcsUserInPartitionRoleQuery =
13 L"SELECT `UserInPartitionRole`, `PartitionRole_`, `ComPlusUserInPartitionRole`.`Component_`, `Domain`, `Name` FROM `ComPlusUserInPartitionRole`, `User` WHERE `User_` = `User`"; 13 L"SELECT `UserInPartitionRole`, `PartitionRole_`, `ComPlusUserInPartitionRole`.`Component_`, `Domain`, `Name` FROM `Wix4ComPlusUserInPartitionRole`, `Wix4User` WHERE `User_` = `User`";
14LPCWSTR vcsGroupInPartitionRoleQuery = 14LPCWSTR vcsGroupInPartitionRoleQuery =
15 L"SELECT `GroupInPartitionRole`, `PartitionRole_`, `ComPlusGroupInPartitionRole`.`Component_`, `Domain`, `Name` FROM `ComPlusGroupInPartitionRole`, `Group` WHERE `Group_` = `Group`"; 15 L"SELECT `GroupInPartitionRole`, `PartitionRole_`, `ComPlusGroupInPartitionRole`.`Component_`, `Domain`, `Name` FROM `Wix4ComPlusGroupInPartitionRole`, `Group` WHERE `Group_` = `Group`";
16enum eTrusteeInPartitionRoleQuery { tiprqUserInPartitionRole = 1, tiprqPartitionRole, tiprqComponent, tiprqDomain, tiprqName }; 16enum eTrusteeInPartitionRoleQuery { tiprqUserInPartitionRole = 1, tiprqPartitionRole, tiprqComponent, tiprqDomain, tiprqName };
17 17
18 18
diff --git a/src/ext/ComPlus/ca/cppartsched.cpp b/src/ext/ComPlus/ca/cppartsched.cpp
index 7cd98791..d4065d34 100644
--- a/src/ext/ComPlus/ca/cppartsched.cpp
+++ b/src/ext/ComPlus/ca/cppartsched.cpp
@@ -6,14 +6,14 @@
6// sql queries 6// sql queries
7 7
8LPCWSTR vcsPartitionQuery = 8LPCWSTR vcsPartitionQuery =
9 L"SELECT `Partition`, `Component_`, `Id`, `Name` FROM `ComPlusPartition`"; 9 L"SELECT `Partition`, `Component_`, `Id`, `Name` FROM `Wix4ComPlusPartition`";
10enum ePartitionQuery { pqPartition = 1, pqComponent, pqID, pqName }; 10enum ePartitionQuery { pqPartition = 1, pqComponent, pqID, pqName };
11 11
12LPCWSTR vcsPartitionPropertyQuery = 12LPCWSTR vcsPartitionPropertyQuery =
13 L"SELECT `Name`, `Value` FROM `ComPlusPartitionProperty` WHERE `Partition_` = ?"; 13 L"SELECT `Name`, `Value` FROM `Wix4ComPlusPartitionProperty` WHERE `Partition_` = ?";
14 14
15LPCWSTR vcsPartitionUserQuery = 15LPCWSTR vcsPartitionUserQuery =
16 L"SELECT `PartitionUser`, `Partition_`, `ComPlusPartitionUser`.`Component_`, `Domain`, `Name` FROM `ComPlusPartitionUser`, `User` WHERE `User_` = `User`"; 16 L"SELECT `PartitionUser`, `Partition_`, `ComPlusPartitionUser`.`Component_`, `Domain`, `Name` FROM `Wix4ComPlusPartitionUser`, `Wix4User` WHERE `User_` = `User`";
17enum ePartitionUserQuery { puqPartitionUser = 1, puqPartition, puqComponent, puqDomain, puqName }; 17enum ePartitionUserQuery { puqPartitionUser = 1, puqPartition, puqComponent, puqDomain, puqName };
18 18
19 19
diff --git a/src/ext/ComPlus/ca/cpsubssched.cpp b/src/ext/ComPlus/ca/cpsubssched.cpp
index df15fd03..fbec3a2d 100644
--- a/src/ext/ComPlus/ca/cpsubssched.cpp
+++ b/src/ext/ComPlus/ca/cpsubssched.cpp
@@ -6,11 +6,11 @@
6// sql queries 6// sql queries
7 7
8LPCWSTR vcsSubscriptionQuery = 8LPCWSTR vcsSubscriptionQuery =
9 L"SELECT `Subscription`, `ComPlusComponent_`, `Component_`, `Id`, `Name`, `EventCLSID`, `PublisherID` FROM `ComPlusSubscription`"; 9 L"SELECT `Subscription`, `ComPlusComponent_`, `Component_`, `Id`, `Name`, `EventCLSID`, `PublisherID` FROM `Wix4ComPlusSubscription`";
10enum eSubscriptionQuery { sqSubscription = 1, sqComPlusComponent, sqComponent, sqID, sqName, sqEventCLSID, sqPublisherID }; 10enum eSubscriptionQuery { sqSubscription = 1, sqComPlusComponent, sqComponent, sqID, sqName, sqEventCLSID, sqPublisherID };
11 11
12LPCWSTR vcsSubscriptionPropertyQuery = 12LPCWSTR vcsSubscriptionPropertyQuery =
13 L"SELECT `Name`, `Value` FROM `ComPlusSubscriptionProperty` WHERE `Subscription_` = ?"; 13 L"SELECT `Name`, `Value` FROM `Wix4ComPlusSubscriptionProperty` WHERE `Subscription_` = ?";
14 14
15 15
16// property definitions 16// property definitions
diff --git a/src/ext/ComPlus/ca/cputilsched.cpp b/src/ext/ComPlus/ca/cputilsched.cpp
index 1a958c56..4a2fdfc6 100644
--- a/src/ext/ComPlus/ca/cputilsched.cpp
+++ b/src/ext/ComPlus/ca/cputilsched.cpp
@@ -13,7 +13,7 @@ LPCWSTR vcsComponentAttributesQuery =
13 L"SELECT `Attributes` FROM `Component` WHERE `Component` = ?"; 13 L"SELECT `Attributes` FROM `Component` WHERE `Component` = ?";
14enum eComponentAttributesQuery { caqAttributes = 1 }; 14enum eComponentAttributesQuery { caqAttributes = 1 };
15 15
16LPCWSTR vcsUserQuery = L"SELECT `Domain`, `Name` FROM `User` WHERE `User` = ?"; 16LPCWSTR vcsUserQuery = L"SELECT `Domain`, `Name` FROM `Wix4User` WHERE `User` = ?";
17enum eUserQuery { uqDomain = 1, uqName }; 17enum eUserQuery { uqDomain = 1, uqName };
18 18
19enum ePropertyQuery { pqName = 1, pqValue }; 19enum ePropertyQuery { pqName = 1, pqValue };
diff --git a/src/ext/ComPlus/test/WixToolsetTest.ComPlus/ComPlusExtensionFixture.cs b/src/ext/ComPlus/test/WixToolsetTest.ComPlus/ComPlusExtensionFixture.cs
index ace4d6b6..d0b8daba 100644
--- a/src/ext/ComPlus/test/WixToolsetTest.ComPlus/ComPlusExtensionFixture.cs
+++ b/src/ext/ComPlus/test/WixToolsetTest.ComPlus/ComPlusExtensionFixture.cs
@@ -16,17 +16,32 @@ namespace WixToolsetTest.ComPlus
16 var folder = TestData.Get(@"TestData\UsingComPlusPartition"); 16 var folder = TestData.Get(@"TestData\UsingComPlusPartition");
17 var build = new Builder(folder, typeof(ComPlusExtensionFactory), new[] { folder }); 17 var build = new Builder(folder, typeof(ComPlusExtensionFactory), new[] { folder });
18 18
19 var results = build.BuildAndQuery(Build, "ComPlusPartition"); 19 var results = build.BuildAndQuery(Build, "Wix4ComPlusPartition", "CustomAction");
20 WixAssert.CompareLineByLine(new[] 20 WixAssert.CompareLineByLine(new[]
21 { 21 {
22 "ComPlusPartition:MyPartition\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tMyPartitionId\tMyPartition", 22 "CustomAction:Wix4ComPlusInstallCommit_A64\t11777\tWix4cpca_A64\tComPlusCleanup\t",
23 "CustomAction:Wix4ComPlusInstallExecute_A64\t11265\tWix4cpca_A64\tComPlusInstallExecute\t",
24 "CustomAction:Wix4ComPlusInstallExecuteCommit_A64\t11777\tWix4cpca_A64\tComPlusInstallExecuteCommit\t",
25 "CustomAction:Wix4ComPlusInstallPrepare_A64\t11265\tWix4cpca_A64\tComPlusPrepare\t",
26 "CustomAction:Wix4ComPlusRollbackInstallExecute_A64\t11521\tWix4cpca_A64\tComPlusRollbackInstallExecute\t",
27 "CustomAction:Wix4ComPlusRollbackInstallPrepare_A64\t11521\tWix4cpca_A64\tComPlusCleanup\t",
28 "CustomAction:Wix4ComPlusRollbackUninstallExecute_A64\t11521\tWix4cpca_A64\tComPlusInstallExecute\t",
29 "CustomAction:Wix4ComPlusRollbackUninstallPrepare_A64\t11521\tWix4cpca_A64\tComPlusCleanup\t",
30 "CustomAction:Wix4ComPlusUninstallCommit_A64\t11777\tWix4cpca_A64\tComPlusCleanup\t",
31 "CustomAction:Wix4ComPlusUninstallExecute_A64\t11265\tWix4cpca_A64\tComPlusUninstallExecute\t",
32 "CustomAction:Wix4ComPlusUninstallPrepare_A64\t11265\tWix4cpca_A64\tComPlusPrepare\t",
33 "CustomAction:Wix4ConfigureComPlusInstall_A64\t1\tWix4cpca_A64\tConfigureComPlusInstall\t",
34 "CustomAction:Wix4ConfigureComPlusUninstall_A64\t1\tWix4cpca_A64\tConfigureComPlusUninstall\t",
35 "Wix4ComPlusPartition:MyPartition\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tMyPartitionId\tMyPartition",
23 }, results); 36 }, results);
24 } 37 }
25 38
26 private static void Build(string[] args) 39 private static void Build(string[] args)
27 { 40 {
28 var result = WixRunner.Execute(args) 41 args = args.Concat(new[] { "-arch", "arm64" }).ToArray();
29 .AssertSuccess(); 42
43 var result = WixRunner.Execute(args);
44 result.AssertSuccess();
30 } 45 }
31 } 46 }
32} 47}
diff --git a/src/ext/ComPlus/test/WixToolsetTest.ComPlus/TestData/UsingComPlusPartition/Package.wxs b/src/ext/ComPlus/test/WixToolsetTest.ComPlus/TestData/UsingComPlusPartition/Package.wxs
index bd31e81f..9524f3a4 100644
--- a/src/ext/ComPlus/test/WixToolsetTest.ComPlus/TestData/UsingComPlusPartition/Package.wxs
+++ b/src/ext/ComPlus/test/WixToolsetTest.ComPlus/TestData/UsingComPlusPartition/Package.wxs
@@ -1,5 +1,5 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" InstallerVersion="200"> 2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 3 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
4 4
5 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 5 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
diff --git a/src/ext/ComPlus/wixext/ComPlusCompiler.cs b/src/ext/ComPlus/wixext/ComPlusCompiler.cs
index 4404801e..9e00bc3b 100644
--- a/src/ext/ComPlus/wixext/ComPlusCompiler.cs
+++ b/src/ext/ComPlus/wixext/ComPlusCompiler.cs
@@ -8,6 +8,7 @@ namespace WixToolset.ComPlus
8 using WixToolset.ComPlus.Symbols; 8 using WixToolset.ComPlus.Symbols;
9 using WixToolset.Data; 9 using WixToolset.Data;
10 using WixToolset.Extensibility; 10 using WixToolset.Extensibility;
11 using WixToolset.Extensibility.Data;
11 12
12 /// <summary> 13 /// <summary>
13 /// The compiler for the WiX Toolset COM+ Extension. 14 /// The compiler for the WiX Toolset COM+ Extension.
@@ -40,7 +41,6 @@ namespace WixToolset.ComPlus
40 { 41 {
41 case "Component": 42 case "Component":
42 var componentId = context["ComponentId"]; 43 var componentId = context["ComponentId"];
43 var directoryId = context["DirectoryId"];
44 var win64 = Boolean.Parse(context["Win64"]); 44 var win64 = Boolean.Parse(context["Win64"]);
45 45
46 switch (element.Name.LocalName) 46 switch (element.Name.LocalName)
@@ -2148,17 +2148,8 @@ namespace WixToolset.ComPlus
2148 2148
2149 private void AddReferenceToConfigureComPlus(IntermediateSection section, SourceLineNumber sourceLineNumbers, string elementName, bool win64) 2149 private void AddReferenceToConfigureComPlus(IntermediateSection section, SourceLineNumber sourceLineNumbers, string elementName, bool win64)
2150 { 2150 {
2151 if (win64) 2151 this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "Wix4ConfigureComPlusInstall", this.Context.Platform, CustomActionPlatforms.X86 | CustomActionPlatforms.X64 | CustomActionPlatforms.ARM64);
2152 { 2152 this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "Wix4ConfigureComPlusUninstall", this.Context.Platform, CustomActionPlatforms.X86 | CustomActionPlatforms.X64 | CustomActionPlatforms.ARM64);
2153 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall_x64");
2154 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall_x64");
2155 }
2156 else
2157 {
2158 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusInstall");
2159 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureComPlusUninstall");
2160 }
2161
2162 } 2153 }
2163 } 2154 }
2164} 2155}
diff --git a/src/ext/ComPlus/wixext/ComPlusTableDefinitions.cs b/src/ext/ComPlus/wixext/ComPlusTableDefinitions.cs
index 565e1d44..52c6ecc5 100644
--- a/src/ext/ComPlus/wixext/ComPlusTableDefinitions.cs
+++ b/src/ext/ComPlus/wixext/ComPlusTableDefinitions.cs
@@ -7,7 +7,7 @@ namespace WixToolset.ComPlus
7 public static class ComPlusTableDefinitions 7 public static class ComPlusTableDefinitions
8 { 8 {
9 public static readonly TableDefinition ComPlusPartition = new TableDefinition( 9 public static readonly TableDefinition ComPlusPartition = new TableDefinition(
10 "ComPlusPartition", 10 "Wix4ComPlusPartition",
11 ComPlusSymbolDefinitions.ComPlusPartition, 11 ComPlusSymbolDefinitions.ComPlusPartition,
12 new[] 12 new[]
13 { 13 {
@@ -20,7 +20,7 @@ namespace WixToolset.ComPlus
20 ); 20 );
21 21
22 public static readonly TableDefinition ComPlusPartitionProperty = new TableDefinition( 22 public static readonly TableDefinition ComPlusPartitionProperty = new TableDefinition(
23 "ComPlusPartitionProperty", 23 "Wix4ComPlusPartitionProperty",
24 ComPlusSymbolDefinitions.ComPlusPartitionProperty, 24 ComPlusSymbolDefinitions.ComPlusPartitionProperty,
25 new[] 25 new[]
26 { 26 {
@@ -32,7 +32,7 @@ namespace WixToolset.ComPlus
32 ); 32 );
33 33
34 public static readonly TableDefinition ComPlusPartitionRole = new TableDefinition( 34 public static readonly TableDefinition ComPlusPartitionRole = new TableDefinition(
35 "ComPlusPartitionRole", 35 "Wix4ComPlusPartitionRole",
36 ComPlusSymbolDefinitions.ComPlusPartitionRole, 36 ComPlusSymbolDefinitions.ComPlusPartitionRole,
37 new[] 37 new[]
38 { 38 {
@@ -45,7 +45,7 @@ namespace WixToolset.ComPlus
45 ); 45 );
46 46
47 public static readonly TableDefinition ComPlusUserInPartitionRole = new TableDefinition( 47 public static readonly TableDefinition ComPlusUserInPartitionRole = new TableDefinition(
48 "ComPlusUserInPartitionRole", 48 "Wix4ComPlusUserInPartitionRole",
49 ComPlusSymbolDefinitions.ComPlusUserInPartitionRole, 49 ComPlusSymbolDefinitions.ComPlusUserInPartitionRole,
50 new[] 50 new[]
51 { 51 {
@@ -58,7 +58,7 @@ namespace WixToolset.ComPlus
58 ); 58 );
59 59
60 public static readonly TableDefinition ComPlusGroupInPartitionRole = new TableDefinition( 60 public static readonly TableDefinition ComPlusGroupInPartitionRole = new TableDefinition(
61 "ComPlusGroupInPartitionRole", 61 "Wix4ComPlusGroupInPartitionRole",
62 ComPlusSymbolDefinitions.ComPlusGroupInPartitionRole, 62 ComPlusSymbolDefinitions.ComPlusGroupInPartitionRole,
63 new[] 63 new[]
64 { 64 {
@@ -71,7 +71,7 @@ namespace WixToolset.ComPlus
71 ); 71 );
72 72
73 public static readonly TableDefinition ComPlusPartitionUser = new TableDefinition( 73 public static readonly TableDefinition ComPlusPartitionUser = new TableDefinition(
74 "ComPlusPartitionUser", 74 "Wix4ComPlusPartitionUser",
75 ComPlusSymbolDefinitions.ComPlusPartitionUser, 75 ComPlusSymbolDefinitions.ComPlusPartitionUser,
76 new[] 76 new[]
77 { 77 {
@@ -84,7 +84,7 @@ namespace WixToolset.ComPlus
84 ); 84 );
85 85
86 public static readonly TableDefinition ComPlusApplication = new TableDefinition( 86 public static readonly TableDefinition ComPlusApplication = new TableDefinition(
87 "ComPlusApplication", 87 "Wix4ComPlusApplication",
88 ComPlusSymbolDefinitions.ComPlusApplication, 88 ComPlusSymbolDefinitions.ComPlusApplication,
89 new[] 89 new[]
90 { 90 {
@@ -98,7 +98,7 @@ namespace WixToolset.ComPlus
98 ); 98 );
99 99
100 public static readonly TableDefinition ComPlusApplicationProperty = new TableDefinition( 100 public static readonly TableDefinition ComPlusApplicationProperty = new TableDefinition(
101 "ComPlusApplicationProperty", 101 "Wix4ComPlusApplicationProperty",
102 ComPlusSymbolDefinitions.ComPlusApplicationProperty, 102 ComPlusSymbolDefinitions.ComPlusApplicationProperty,
103 new[] 103 new[]
104 { 104 {
@@ -110,7 +110,7 @@ namespace WixToolset.ComPlus
110 ); 110 );
111 111
112 public static readonly TableDefinition ComPlusApplicationRole = new TableDefinition( 112 public static readonly TableDefinition ComPlusApplicationRole = new TableDefinition(
113 "ComPlusApplicationRole", 113 "Wix4ComPlusApplicationRole",
114 ComPlusSymbolDefinitions.ComPlusApplicationRole, 114 ComPlusSymbolDefinitions.ComPlusApplicationRole,
115 new[] 115 new[]
116 { 116 {
@@ -123,7 +123,7 @@ namespace WixToolset.ComPlus
123 ); 123 );
124 124
125 public static readonly TableDefinition ComPlusApplicationRoleProperty = new TableDefinition( 125 public static readonly TableDefinition ComPlusApplicationRoleProperty = new TableDefinition(
126 "ComPlusApplicationRoleProperty", 126 "Wix4ComPlusApplicationRoleProperty",
127 ComPlusSymbolDefinitions.ComPlusApplicationRoleProperty, 127 ComPlusSymbolDefinitions.ComPlusApplicationRoleProperty,
128 new[] 128 new[]
129 { 129 {
@@ -135,7 +135,7 @@ namespace WixToolset.ComPlus
135 ); 135 );
136 136
137 public static readonly TableDefinition ComPlusUserInApplicationRole = new TableDefinition( 137 public static readonly TableDefinition ComPlusUserInApplicationRole = new TableDefinition(
138 "ComPlusUserInApplicationRole", 138 "Wix4ComPlusUserInApplicationRole",
139 ComPlusSymbolDefinitions.ComPlusUserInApplicationRole, 139 ComPlusSymbolDefinitions.ComPlusUserInApplicationRole,
140 new[] 140 new[]
141 { 141 {
@@ -148,7 +148,7 @@ namespace WixToolset.ComPlus
148 ); 148 );
149 149
150 public static readonly TableDefinition ComPlusGroupInApplicationRole = new TableDefinition( 150 public static readonly TableDefinition ComPlusGroupInApplicationRole = new TableDefinition(
151 "ComPlusGroupInApplicationRole", 151 "Wix4ComPlusGroupInApplicationRole",
152 ComPlusSymbolDefinitions.ComPlusGroupInApplicationRole, 152 ComPlusSymbolDefinitions.ComPlusGroupInApplicationRole,
153 new[] 153 new[]
154 { 154 {
@@ -161,7 +161,7 @@ namespace WixToolset.ComPlus
161 ); 161 );
162 162
163 public static readonly TableDefinition ComPlusAssembly = new TableDefinition( 163 public static readonly TableDefinition ComPlusAssembly = new TableDefinition(
164 "ComPlusAssembly", 164 "Wix4ComPlusAssembly",
165 ComPlusSymbolDefinitions.ComPlusAssembly, 165 ComPlusSymbolDefinitions.ComPlusAssembly,
166 new[] 166 new[]
167 { 167 {
@@ -178,7 +178,7 @@ namespace WixToolset.ComPlus
178 ); 178 );
179 179
180 public static readonly TableDefinition ComPlusAssemblyDependency = new TableDefinition( 180 public static readonly TableDefinition ComPlusAssemblyDependency = new TableDefinition(
181 "ComPlusAssemblyDependency", 181 "Wix4ComPlusAssemblyDependency",
182 ComPlusSymbolDefinitions.ComPlusAssemblyDependency, 182 ComPlusSymbolDefinitions.ComPlusAssemblyDependency,
183 new[] 183 new[]
184 { 184 {
@@ -189,7 +189,7 @@ namespace WixToolset.ComPlus
189 ); 189 );
190 190
191 public static readonly TableDefinition ComPlusComponent = new TableDefinition( 191 public static readonly TableDefinition ComPlusComponent = new TableDefinition(
192 "ComPlusComponent", 192 "Wix4ComPlusComponent",
193 ComPlusSymbolDefinitions.ComPlusComponent, 193 ComPlusSymbolDefinitions.ComPlusComponent,
194 new[] 194 new[]
195 { 195 {
@@ -201,7 +201,7 @@ namespace WixToolset.ComPlus
201 ); 201 );
202 202
203 public static readonly TableDefinition ComPlusComponentProperty = new TableDefinition( 203 public static readonly TableDefinition ComPlusComponentProperty = new TableDefinition(
204 "ComPlusComponentProperty", 204 "Wix4ComPlusComponentProperty",
205 ComPlusSymbolDefinitions.ComPlusComponentProperty, 205 ComPlusSymbolDefinitions.ComPlusComponentProperty,
206 new[] 206 new[]
207 { 207 {
@@ -213,7 +213,7 @@ namespace WixToolset.ComPlus
213 ); 213 );
214 214
215 public static readonly TableDefinition ComPlusRoleForComponent = new TableDefinition( 215 public static readonly TableDefinition ComPlusRoleForComponent = new TableDefinition(
216 "ComPlusRoleForComponent", 216 "Wix4ComPlusRoleForComponent",
217 ComPlusSymbolDefinitions.ComPlusRoleForComponent, 217 ComPlusSymbolDefinitions.ComPlusRoleForComponent,
218 new[] 218 new[]
219 { 219 {
@@ -226,7 +226,7 @@ namespace WixToolset.ComPlus
226 ); 226 );
227 227
228 public static readonly TableDefinition ComPlusInterface = new TableDefinition( 228 public static readonly TableDefinition ComPlusInterface = new TableDefinition(
229 "ComPlusInterface", 229 "Wix4ComPlusInterface",
230 ComPlusSymbolDefinitions.ComPlusInterface, 230 ComPlusSymbolDefinitions.ComPlusInterface,
231 new[] 231 new[]
232 { 232 {
@@ -238,7 +238,7 @@ namespace WixToolset.ComPlus
238 ); 238 );
239 239
240 public static readonly TableDefinition ComPlusInterfaceProperty = new TableDefinition( 240 public static readonly TableDefinition ComPlusInterfaceProperty = new TableDefinition(
241 "ComPlusInterfaceProperty", 241 "Wix4ComPlusInterfaceProperty",
242 ComPlusSymbolDefinitions.ComPlusInterfaceProperty, 242 ComPlusSymbolDefinitions.ComPlusInterfaceProperty,
243 new[] 243 new[]
244 { 244 {
@@ -250,7 +250,7 @@ namespace WixToolset.ComPlus
250 ); 250 );
251 251
252 public static readonly TableDefinition ComPlusRoleForInterface = new TableDefinition( 252 public static readonly TableDefinition ComPlusRoleForInterface = new TableDefinition(
253 "ComPlusRoleForInterface", 253 "Wix4ComPlusRoleForInterface",
254 ComPlusSymbolDefinitions.ComPlusRoleForInterface, 254 ComPlusSymbolDefinitions.ComPlusRoleForInterface,
255 new[] 255 new[]
256 { 256 {
@@ -263,7 +263,7 @@ namespace WixToolset.ComPlus
263 ); 263 );
264 264
265 public static readonly TableDefinition ComPlusMethod = new TableDefinition( 265 public static readonly TableDefinition ComPlusMethod = new TableDefinition(
266 "ComPlusMethod", 266 "Wix4ComPlusMethod",
267 ComPlusSymbolDefinitions.ComPlusMethod, 267 ComPlusSymbolDefinitions.ComPlusMethod,
268 new[] 268 new[]
269 { 269 {
@@ -276,7 +276,7 @@ namespace WixToolset.ComPlus
276 ); 276 );
277 277
278 public static readonly TableDefinition ComPlusMethodProperty = new TableDefinition( 278 public static readonly TableDefinition ComPlusMethodProperty = new TableDefinition(
279 "ComPlusMethodProperty", 279 "Wix4ComPlusMethodProperty",
280 ComPlusSymbolDefinitions.ComPlusMethodProperty, 280 ComPlusSymbolDefinitions.ComPlusMethodProperty,
281 new[] 281 new[]
282 { 282 {
@@ -288,7 +288,7 @@ namespace WixToolset.ComPlus
288 ); 288 );
289 289
290 public static readonly TableDefinition ComPlusRoleForMethod = new TableDefinition( 290 public static readonly TableDefinition ComPlusRoleForMethod = new TableDefinition(
291 "ComPlusRoleForMethod", 291 "Wix4ComPlusRoleForMethod",
292 ComPlusSymbolDefinitions.ComPlusRoleForMethod, 292 ComPlusSymbolDefinitions.ComPlusRoleForMethod,
293 new[] 293 new[]
294 { 294 {
@@ -301,7 +301,7 @@ namespace WixToolset.ComPlus
301 ); 301 );
302 302
303 public static readonly TableDefinition ComPlusSubscription = new TableDefinition( 303 public static readonly TableDefinition ComPlusSubscription = new TableDefinition(
304 "ComPlusSubscription", 304 "Wix4ComPlusSubscription",
305 ComPlusSymbolDefinitions.ComPlusSubscription, 305 ComPlusSymbolDefinitions.ComPlusSubscription,
306 new[] 306 new[]
307 { 307 {
@@ -317,7 +317,7 @@ namespace WixToolset.ComPlus
317 ); 317 );
318 318
319 public static readonly TableDefinition ComPlusSubscriptionProperty = new TableDefinition( 319 public static readonly TableDefinition ComPlusSubscriptionProperty = new TableDefinition(
320 "ComPlusSubscriptionProperty", 320 "Wix4ComPlusSubscriptionProperty",
321 ComPlusSymbolDefinitions.ComPlusSubscriptionProperty, 321 ComPlusSymbolDefinitions.ComPlusSubscriptionProperty,
322 new[] 322 new[]
323 { 323 {
diff --git a/src/ext/ComPlus/wixlib/ComPlusExtension.wxs b/src/ext/ComPlus/wixlib/ComPlusExtension.wxs
index 736fd9b5..d8febf5c 100644
--- a/src/ext/ComPlus/wixlib/ComPlusExtension.wxs
+++ b/src/ext/ComPlus/wixlib/ComPlusExtension.wxs
@@ -1,6 +1,8 @@
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. --> 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 2
3
3<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <?include ..\..\caDecor.wxi ?>
4 <?include ..\..\caerr.wxi ?> 6 <?include ..\..\caerr.wxi ?>
5 7
6 <Fragment> 8 <Fragment>
@@ -31,105 +33,27 @@
31 <Error Id="$(var.msierrComPlusSubscriptionNameConflict)" Message="!(loc.msierrComPlusSubscriptionNameConflict)" /> 33 <Error Id="$(var.msierrComPlusSubscriptionNameConflict)" Message="!(loc.msierrComPlusSubscriptionNameConflict)" />
32 <Error Id="$(var.msierrComPlusFailedLookupNames)" Message="!(loc.msierrComPlusFailedLookupNames)" /> 34 <Error Id="$(var.msierrComPlusFailedLookupNames)" Message="!(loc.msierrComPlusFailedLookupNames)" />
33 35
34 <ProgressText Action="ComPlusInstallExecute" Message="!(loc.ComPlusInstallExecute)" /> 36 <ProgressText Action="$(var.Prefix)ComPlusInstallExecute$(var.Suffix)" Message="!(loc.ComPlusInstallExecute)" />
35 <ProgressText Action="ComPlusUninstallExecute" Message="!(loc.ComPlusUninstallExecute)" /> 37 <ProgressText Action="$(var.Prefix)ComPlusUninstallExecute$(var.Suffix)" Message="!(loc.ComPlusUninstallExecute)" />
36 38
37 <ProgressText Action="CreateComPlusPartitions" Template="!(loc.CreateComPlusPartitionsTemplate)" Message="!(loc.CreateComPlusPartitions)" /> 39 <ProgressText Action="$(var.Prefix)CreateComPlusPartitions$(var.Suffix)" Template="!(loc.CreateComPlusPartitionsTemplate)" Message="!(loc.CreateComPlusPartitions)" />
38 <ProgressText Action="RemoveComPlusPartitions" Template="!(loc.RemoveComPlusPartitionsTemplate)" Message="!(loc.RemoveComPlusPartitions)" /> 40 <ProgressText Action="$(var.Prefix)RemoveComPlusPartitions$(var.Suffix)" Template="!(loc.RemoveComPlusPartitionsTemplate)" Message="!(loc.RemoveComPlusPartitions)" />
39 <ProgressText Action="AddUsersToComPlusPartitionRoles" Template="!(loc.AddUsersToComPlusPartitionRolesTemplate)" Message="!(loc.AddUsersToComPlusPartitionRoles)" /> 41 <ProgressText Action="$(var.Prefix)AddUsersToComPlusPartitionRoles$(var.Suffix)" Template="!(loc.AddUsersToComPlusPartitionRolesTemplate)" Message="!(loc.AddUsersToComPlusPartitionRoles)" />
40 <ProgressText Action="RemoveUsersFromComPlusPartRoles" Template="!(loc.RemoveUsersFromComPlusPartitionRolesTemplate)" Message="!(loc.RemoveUsersFromComPlusPartitionRoles)" /> 42 <ProgressText Action="$(var.Prefix)RemoveUsersFromComPlusPartRoles$(var.Suffix)" Template="!(loc.RemoveUsersFromComPlusPartitionRolesTemplate)" Message="!(loc.RemoveUsersFromComPlusPartitionRoles)" />
41 <ProgressText Action="AddComPlusPartitionUsers" Template="!(loc.AddComPlusPartitionUsersTemplate)" Message="!(loc.AddComPlusPartitionUsers)" /> 43 <ProgressText Action="$(var.Prefix)AddComPlusPartitionUsers$(var.Suffix)" Template="!(loc.AddComPlusPartitionUsersTemplate)" Message="!(loc.AddComPlusPartitionUsers)" />
42 <ProgressText Action="RemoveComPlusPartitionUsers" Template="!(loc.RemoveComPlusPartitionUsersTemplate)" Message="!(loc.RemoveComPlusPartitionUsers)" /> 44 <ProgressText Action="$(var.Prefix)RemoveComPlusPartitionUsers$(var.Suffix)" Template="!(loc.RemoveComPlusPartitionUsersTemplate)" Message="!(loc.RemoveComPlusPartitionUsers)" />
43 <ProgressText Action="CreateComPlusApplications" Template="!(loc.CreateComPlusApplicationsTemplate)" Message="!(loc.CreateComPlusApplications)" /> 45 <ProgressText Action="$(var.Prefix)CreateComPlusApplications$(var.Suffix)" Template="!(loc.CreateComPlusApplicationsTemplate)" Message="!(loc.CreateComPlusApplications)" />
44 <ProgressText Action="RemoveComPlusApplications" Template="!(loc.RemoveComPlusApplicationsTemplate)" Message="!(loc.RemoveComPlusApplications)" /> 46 <ProgressText Action="$(var.Prefix)RemoveComPlusApplications$(var.Suffix)" Template="!(loc.RemoveComPlusApplicationsTemplate)" Message="!(loc.RemoveComPlusApplications)" />
45 <ProgressText Action="CreateComPlusApplicationRoles" Template="!(loc.CreateComPlusApplicationRolesTemplate)" Message="!(loc.CreateComPlusApplicationRoles)" /> 47 <ProgressText Action="$(var.Prefix)CreateComPlusApplicationRoles$(var.Suffix)" Template="!(loc.CreateComPlusApplicationRolesTemplate)" Message="!(loc.CreateComPlusApplicationRoles)" />
46 <ProgressText Action="RemoveComPlusApplicationRoles" Template="!(loc.RemoveComPlusApplicationRolesTemplate)" Message="!(loc.RemoveComPlusApplicationRoles)" /> 48 <ProgressText Action="$(var.Prefix)RemoveComPlusApplicationRoles$(var.Suffix)" Template="!(loc.RemoveComPlusApplicationRolesTemplate)" Message="!(loc.RemoveComPlusApplicationRoles)" />
47 <ProgressText Action="AddUsersToComPlusApplicationRoles" Template="!(loc.AddUsersToComPlusApplicationRolesTemplate)" Message="!(loc.AddUsersToComPlusApplicationRoles)" /> 49 <ProgressText Action="$(var.Prefix)AddUsersToComPlusApplicationRoles$(var.Suffix)" Template="!(loc.AddUsersToComPlusApplicationRolesTemplate)" Message="!(loc.AddUsersToComPlusApplicationRoles)" />
48 <ProgressText Action="RemoveUsersFromComPlusAppRoles" Template="!(loc.RemoveUsersFromComPlusApplicationRolesTemplate)" Message="!(loc.RemoveUsersFromComPlusApplicationRoles)" /> 50 <ProgressText Action="$(var.Prefix)RemoveUsersFromComPlusAppRoles$(var.Suffix)" Template="!(loc.RemoveUsersFromComPlusApplicationRolesTemplate)" Message="!(loc.RemoveUsersFromComPlusApplicationRoles)" />
49 <ProgressText Action="RegisterComPlusAssemblies" Template="!(loc.RegisterComPlusAssembliesTemplate)" Message="!(loc.RegisterComPlusAssemblies)" /> 51 <ProgressText Action="$(var.Prefix)RegisterComPlusAssemblies$(var.Suffix)" Template="!(loc.RegisterComPlusAssembliesTemplate)" Message="!(loc.RegisterComPlusAssemblies)" />
50 <ProgressText Action="UnregisterComPlusAssemblies" Template="!(loc.UnregisterComPlusAssembliesTemplate)" Message="!(loc.UnregisterComPlusAssemblies)" /> 52 <ProgressText Action="$(var.Prefix)UnregisterComPlusAssemblies$(var.Suffix)" Template="!(loc.UnregisterComPlusAssembliesTemplate)" Message="!(loc.UnregisterComPlusAssemblies)" />
51 <ProgressText Action="AddComPlusRoleAssignments" Template="!(loc.AddComPlusRoleAssignmentsTemplate)" Message="!(loc.AddComPlusRoleAssignments)" /> 53 <ProgressText Action="$(var.Prefix)AddComPlusRoleAssignments$(var.Suffix)" Template="!(loc.AddComPlusRoleAssignmentsTemplate)" Message="!(loc.AddComPlusRoleAssignments)" />
52 <ProgressText Action="RemoveComPlusRoleAssignments" Template="!(loc.RemoveComPlusRoleAssignmentsTemplate)" Message="!(loc.RemoveComPlusRoleAssignments)" /> 54 <ProgressText Action="$(var.Prefix)RemoveComPlusRoleAssignments$(var.Suffix)" Template="!(loc.RemoveComPlusRoleAssignmentsTemplate)" Message="!(loc.RemoveComPlusRoleAssignments)" />
53 <ProgressText Action="CreateSubscrComPlusComponents" Template="!(loc.CreateSubscriptionsComPlusComponentsTemplate)" Message="!(loc.CreateSubscriptionsComPlusComponents)" /> 55 <ProgressText Action="$(var.Prefix)CreateSubscrComPlusComponents$(var.Suffix)" Template="!(loc.CreateSubscriptionsComPlusComponentsTemplate)" Message="!(loc.CreateSubscriptionsComPlusComponents)" />
54 <ProgressText Action="RemoveSubscrComPlusComponents" Template="!(loc.RemoveSubscriptionsComPlusComponentsTemplate)" Message="!(loc.RemoveSubscriptionsComPlusComponents)" /> 56 <ProgressText Action="$(var.Prefix)RemoveSubscrComPlusComponents$(var.Suffix)" Template="!(loc.RemoveSubscriptionsComPlusComponentsTemplate)" Message="!(loc.RemoveSubscriptionsComPlusComponents)" />
55 </UI> 57 </UI>
56 </Fragment> 58 </Fragment>
57
58 <Fragment>
59 <UIRef Id="ComPlusUI" />
60
61 <CustomAction Id="ConfigureComPlusInstall" DllEntry="ConfigureComPlusInstall" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
62 <CustomAction Id="ConfigureComPlusUninstall" DllEntry="ConfigureComPlusUninstall" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
63 <CustomAction Id="ComPlusInstallPrepare" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
64 <CustomAction Id="ComPlusRollbackInstallPrepare" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
65 <CustomAction Id="ComPlusInstallExecute" DllEntry="ComPlusInstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
66 <CustomAction Id="ComPlusInstallExecuteCommit" DllEntry="ComPlusInstallExecuteCommit" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
67 <CustomAction Id="ComPlusRollbackInstallExecute" DllEntry="ComPlusRollbackInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
68 <CustomAction Id="ComPlusInstallCommit" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
69 <CustomAction Id="ComPlusUninstallPrepare" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
70 <CustomAction Id="ComPlusRollbackUninstallPrepare" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
71 <CustomAction Id="ComPlusUninstallExecute" DllEntry="ComPlusUninstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
72 <CustomAction Id="ComPlusRollbackUninstallExecute" DllEntry="ComPlusInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
73 <CustomAction Id="ComPlusUninstallCommit" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x86" />
74
75 <Property Id="ComPlusInstallPrepare" Hidden="yes" SuppressModularization="yes" />
76 <Property Id="ComPlusRollbackInstallPrepare" Hidden="yes" SuppressModularization="yes" />
77 <Property Id="ComPlusInstallExecute" Hidden="yes" SuppressModularization="yes" />
78 <Property Id="ComPlusInstallExecuteCommit" Hidden="yes" SuppressModularization="yes" />
79 <Property Id="ComPlusRollbackInstallExecute" Hidden="yes" SuppressModularization="yes" />
80 <Property Id="ComPlusInstallCommit" Hidden="yes" SuppressModularization="yes" />
81 <Property Id="ComPlusUninstallPrepare" Hidden="yes" SuppressModularization="yes" />
82 <Property Id="ComPlusRollbackUninstallPrepare" Hidden="yes" SuppressModularization="yes" />
83 <Property Id="ComPlusUninstallExecute" Hidden="yes" SuppressModularization="yes" />
84 <Property Id="ComPlusRollbackUninstallExecute" Hidden="yes" SuppressModularization="yes" />
85 <Property Id="ComPlusUninstallCommit" Hidden="yes" SuppressModularization="yes" />
86
87 <InstallExecuteSequence>
88 <Custom Action="ConfigureComPlusUninstall" After="DeleteServices" Overridable="yes" Condition="VersionNT &gt;= 500" />
89 <Custom Action="ConfigureComPlusInstall" Before="InstallServices" Overridable="yes" Condition="VersionNT &gt;= 500" />
90 </InstallExecuteSequence>
91 </Fragment>
92
93 <Fragment>
94 <UIRef Id="ComPlusUI" />
95
96 <CustomAction Id="ConfigureComPlusInstall_x64" DllEntry="ConfigureComPlusInstall" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
97 <CustomAction Id="ConfigureComPlusUninstall_x64" DllEntry="ConfigureComPlusUninstall" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
98 <CustomAction Id="ComPlusInstallPrepare_64" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
99 <CustomAction Id="ComPlusRollbackInstallPrepare_64" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
100 <CustomAction Id="ComPlusInstallExecute_64" DllEntry="ComPlusInstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
101 <CustomAction Id="ComPlusInstallExecuteCommit_64" DllEntry="ComPlusInstallExecuteCommit" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
102 <CustomAction Id="ComPlusRollbackInstallExecute_64" DllEntry="ComPlusRollbackInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
103 <CustomAction Id="ComPlusInstallCommit_64" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
104 <CustomAction Id="ComPlusUninstallPrepare_64" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
105 <CustomAction Id="ComPlusRollbackUninstallPrepare_64" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
106 <CustomAction Id="ComPlusUninstallExecute_64" DllEntry="ComPlusUninstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
107 <CustomAction Id="ComPlusRollbackUninstallExecute_64" DllEntry="ComPlusInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
108 <CustomAction Id="ComPlusUninstallCommit_64" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="ComPlusCA_x64" />
109
110 <Property Id="ComPlusInstallPrepare_64" Hidden="yes" SuppressModularization="yes" />
111 <Property Id="ComPlusRollbackInstallPrepare_64" Hidden="yes" SuppressModularization="yes" />
112 <Property Id="ComPlusInstallExecute_64" Hidden="yes" SuppressModularization="yes" />
113 <Property Id="ComPlusInstallExecuteCommit_64" Hidden="yes" SuppressModularization="yes" />
114 <Property Id="ComPlusRollbackInstallExecute_64" Hidden="yes" SuppressModularization="yes" />
115 <Property Id="ComPlusInstallCommit_64" Hidden="yes" SuppressModularization="yes" />
116 <Property Id="ComPlusUninstallPrepare_64" Hidden="yes" SuppressModularization="yes" />
117 <Property Id="ComPlusRollbackUninstallPrepare_64" Hidden="yes" SuppressModularization="yes" />
118 <Property Id="ComPlusUninstallExecute_64" Hidden="yes" SuppressModularization="yes" />
119 <Property Id="ComPlusRollbackUninstallExecute_64" Hidden="yes" SuppressModularization="yes" />
120 <Property Id="ComPlusUninstallCommit_64" Hidden="yes" SuppressModularization="yes" />
121
122 <InstallExecuteSequence>
123 <Custom Action="ConfigureComPlusUninstall_x64" After="DeleteServices" Overridable="yes" Condition="VersionNT &gt;= 500" />
124 <Custom Action="ConfigureComPlusInstall_x64" Before="InstallServices" Overridable="yes" Condition="VersionNT &gt;= 500" />
125 </InstallExecuteSequence>
126 </Fragment>
127
128 <Fragment>
129 <Binary Id="ComPlusCA_x86" SourceFile="!(bindpath.x86)complusca.dll" />
130 </Fragment>
131
132 <Fragment>
133 <Binary Id="ComPlusCA_x64" SourceFile="!(bindpath.x64)complusca.dll" />
134 </Fragment>
135</Wix> 59</Wix>
diff --git a/src/ext/ComPlus/wixlib/ComPlusExtension_Platform.wxi b/src/ext/ComPlus/wixlib/ComPlusExtension_Platform.wxi
new file mode 100644
index 00000000..7edae031
--- /dev/null
+++ b/src/ext/ComPlus/wixlib/ComPlusExtension_Platform.wxi
@@ -0,0 +1,44 @@
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
3<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">
4 <?include ..\..\caDecor.wxi ?>
5
6 <Fragment>
7 <UIRef Id="ComPlusUI" />
8
9 <CustomAction Id="$(var.Prefix)ConfigureComPlusInstall$(var.Suffix)" DllEntry="ConfigureComPlusInstall" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
10 <CustomAction Id="$(var.Prefix)ConfigureComPlusUninstall$(var.Suffix)" DllEntry="ConfigureComPlusUninstall" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
11 <CustomAction Id="$(var.Prefix)ComPlusInstallPrepare$(var.Suffix)" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
12 <CustomAction Id="$(var.Prefix)ComPlusRollbackInstallPrepare$(var.Suffix)" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
13 <CustomAction Id="$(var.Prefix)ComPlusInstallExecute$(var.Suffix)" DllEntry="ComPlusInstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
14 <CustomAction Id="$(var.Prefix)ComPlusInstallExecuteCommit$(var.Suffix)" DllEntry="ComPlusInstallExecuteCommit" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
15 <CustomAction Id="$(var.Prefix)ComPlusRollbackInstallExecute$(var.Suffix)" DllEntry="ComPlusRollbackInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
16 <CustomAction Id="$(var.Prefix)ComPlusInstallCommit$(var.Suffix)" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
17 <CustomAction Id="$(var.Prefix)ComPlusUninstallPrepare$(var.Suffix)" DllEntry="ComPlusPrepare" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
18 <CustomAction Id="$(var.Prefix)ComPlusRollbackUninstallPrepare$(var.Suffix)" DllEntry="ComPlusCleanup" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
19 <CustomAction Id="$(var.Prefix)ComPlusUninstallExecute$(var.Suffix)" DllEntry="ComPlusUninstallExecute" Execute="deferred" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
20 <CustomAction Id="$(var.Prefix)ComPlusRollbackUninstallExecute$(var.Suffix)" DllEntry="ComPlusInstallExecute" Execute="rollback" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
21 <CustomAction Id="$(var.Prefix)ComPlusUninstallCommit$(var.Suffix)" DllEntry="ComPlusCleanup" Execute="commit" Return="check" Impersonate="no" HideTarget="yes" SuppressModularization="yes" BinaryRef="$(var.Prefix)cpca$(var.Suffix)" />
22
23 <Property Id="$(var.Prefix)ComPlusInstallPrepare$(var.Suffix)" Hidden="yes" SuppressModularization="yes" />
24 <Property Id="$(var.Prefix)ComPlusRollbackInstallPrepare$(var.Suffix)" Hidden="yes" SuppressModularization="yes" />
25 <Property Id="$(var.Prefix)ComPlusInstallExecute$(var.Suffix)" Hidden="yes" SuppressModularization="yes" />
26 <Property Id="$(var.Prefix)ComPlusInstallExecuteCommit$(var.Suffix)" Hidden="yes" SuppressModularization="yes" />
27 <Property Id="$(var.Prefix)ComPlusRollbackInstallExecute$(var.Suffix)" Hidden="yes" SuppressModularization="yes" />
28 <Property Id="$(var.Prefix)ComPlusInstallCommit$(var.Suffix)" Hidden="yes" SuppressModularization="yes" />
29 <Property Id="$(var.Prefix)ComPlusUninstallPrepare$(var.Suffix)" Hidden="yes" SuppressModularization="yes" />
30 <Property Id="$(var.Prefix)ComPlusRollbackUninstallPrepare$(var.Suffix)" Hidden="yes" SuppressModularization="yes" />
31 <Property Id="$(var.Prefix)ComPlusUninstallExecute$(var.Suffix)" Hidden="yes" SuppressModularization="yes" />
32 <Property Id="$(var.Prefix)ComPlusRollbackUninstallExecute$(var.Suffix)" Hidden="yes" SuppressModularization="yes" />
33 <Property Id="$(var.Prefix)ComPlusUninstallCommit$(var.Suffix)" Hidden="yes" SuppressModularization="yes" />
34
35 <InstallExecuteSequence>
36 <Custom Action="$(var.Prefix)ConfigureComPlusUninstall$(var.Suffix)" After="DeleteServices" Overridable="yes" Condition="VersionNT &gt;= 500" />
37 <Custom Action="$(var.Prefix)ConfigureComPlusInstall$(var.Suffix)" Before="InstallServices" Overridable="yes" Condition="VersionNT &gt;= 500" />
38 </InstallExecuteSequence>
39 </Fragment>
40
41 <Fragment>
42 <Binary Id="$(var.Prefix)cpca$(var.Suffix)" SourceFile="!(bindpath.$(var.platform))complusca.dll" />
43 </Fragment>
44</Include>
diff --git a/src/ext/ComPlus/wixlib/ComPlusExtension_arm64.wxs b/src/ext/ComPlus/wixlib/ComPlusExtension_arm64.wxs
new file mode 100644
index 00000000..cb40cd85
--- /dev/null
+++ b/src/ext/ComPlus/wixlib/ComPlusExtension_arm64.wxs
@@ -0,0 +1,7 @@
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
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <?define platform=arm64 ?>
6 <?include ComPlusExtension_Platform.wxi ?>
7</Wix>
diff --git a/src/ext/ComPlus/wixlib/ComPlusExtension_x64.wxs b/src/ext/ComPlus/wixlib/ComPlusExtension_x64.wxs
new file mode 100644
index 00000000..67d70d12
--- /dev/null
+++ b/src/ext/ComPlus/wixlib/ComPlusExtension_x64.wxs
@@ -0,0 +1,7 @@
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
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <?define platform=x64 ?>
6 <?include ComPlusExtension_Platform.wxi ?>
7</Wix>
diff --git a/src/ext/ComPlus/wixlib/ComPlusExtension_x86.wxs b/src/ext/ComPlus/wixlib/ComPlusExtension_x86.wxs
new file mode 100644
index 00000000..0c2e9cef
--- /dev/null
+++ b/src/ext/ComPlus/wixlib/ComPlusExtension_x86.wxs
@@ -0,0 +1,7 @@
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
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <?define platform=x86 ?>
6 <?include ComPlusExtension_Platform.wxi ?>
7</Wix>
diff --git a/src/ext/ComPlus/wixlib/complus.wixproj b/src/ext/ComPlus/wixlib/complus.wixproj
index f0eaebee..9a70c17a 100644
--- a/src/ext/ComPlus/wixlib/complus.wixproj
+++ b/src/ext/ComPlus/wixlib/complus.wixproj
@@ -11,11 +11,13 @@
11 <ItemGroup> 11 <ItemGroup>
12 <BindInputPaths Include="$(OutputPath)x86" BindName='x86' /> 12 <BindInputPaths Include="$(OutputPath)x86" BindName='x86' />
13 <BindInputPaths Include="$(OutputPath)x64" BindName='x64' /> 13 <BindInputPaths Include="$(OutputPath)x64" BindName='x64' />
14 <BindInputPaths Include="$(OutputPath)arm64" BindName='arm64' />
14 </ItemGroup> 15 </ItemGroup>
15 16
16 <ItemGroup> 17 <ItemGroup>
17 <ProjectReference Include="..\ca\complusca.vcxproj" Properties="Platform=x86" ReferenceOutputAssembly="false" /> 18 <ProjectReference Include="..\ca\complusca.vcxproj" Properties="Platform=x86" />
18 <ProjectReference Include="..\ca\complusca.vcxproj" Properties="Platform=x64" ReferenceOutputAssembly="false" /> 19 <ProjectReference Include="..\ca\complusca.vcxproj" Properties="Platform=x64" />
20 <ProjectReference Include="..\ca\complusca.vcxproj" Properties="Platform=ARM64" />
19 </ItemGroup> 21 </ItemGroup>
20 22
21 <ItemGroup> 23 <ItemGroup>
diff --git a/src/ext/Msmq/Msmq.wixext.sln b/src/ext/Msmq/Msmq.wixext.sln
index d6728547..84ef7097 100644
--- a/src/ext/Msmq/Msmq.wixext.sln
+++ b/src/ext/Msmq/Msmq.wixext.sln
@@ -1,7 +1,7 @@
1 1
2Microsoft Visual Studio Solution File, Format Version 12.00 2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio 15 3# Visual Studio Version 17
4VisualStudioVersion = 15.0.28010.2016 4VisualStudioVersion = 17.0.32126.317
5MinimumVisualStudioVersion = 10.0.40219.1 5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msmqca", "ca\msmqca.vcxproj", "{CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}" 6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msmqca", "ca\msmqca.vcxproj", "{CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}"
7EndProject 7EndProject
diff --git a/src/ext/Msmq/ca/mqqueuesched.cpp b/src/ext/Msmq/ca/mqqueuesched.cpp
index 01777ea4..ab4d1680 100644
--- a/src/ext/Msmq/ca/mqqueuesched.cpp
+++ b/src/ext/Msmq/ca/mqqueuesched.cpp
@@ -6,13 +6,13 @@
6// sql queries 6// sql queries
7 7
8LPCWSTR vcsMessageQueueQuery = 8LPCWSTR vcsMessageQueueQuery =
9 L"SELECT `MessageQueue`, `Component_`, `BasePriority`, `JournalQuota`, `Label`, `MulticastAddress`, `PathName`, `PrivLevel`, `Quota`, `ServiceTypeGuid`, `Attributes` FROM `MessageQueue`"; 9 L"SELECT `MessageQueue`, `Component_`, `BasePriority`, `JournalQuota`, `Label`, `MulticastAddress`, `PathName`, `PrivLevel`, `Quota`, `ServiceTypeGuid`, `Attributes` FROM `Wix4MessageQueue`";
10enum eMessageQueueQuery { mqqMessageQueue = 1, mqqComponent, mqqBasePriority, mqqJournalQuota, mqqLabel, mqqMulticastAddress, mqqPathName, mqqPrivLevel, mqqQuota, mqqServiceTypeGuid, mqqAttributes }; 10enum eMessageQueueQuery { mqqMessageQueue = 1, mqqComponent, mqqBasePriority, mqqJournalQuota, mqqLabel, mqqMulticastAddress, mqqPathName, mqqPrivLevel, mqqQuota, mqqServiceTypeGuid, mqqAttributes };
11 11
12LPCWSTR vcsMessageQueueUserPermissionQuery = 12LPCWSTR vcsMessageQueueUserPermissionQuery =
13 L"SELECT `MessageQueueUserPermission`, `MessageQueue_`, `MessageQueueUserPermission`.`Component_`, `Domain`, `Name`, `Permissions` FROM `MessageQueueUserPermission`, `User` WHERE `User_` = `User`"; 13 L"SELECT `MessageQueueUserPermission`, `MessageQueue_`, `MessageQueueUserPermission`.`Component_`, `Domain`, `Name`, `Permissions` FROM `Wix4MessageQueueUserPermission`, `User` WHERE `User_` = `User`";
14LPCWSTR vcsMessageQueueGroupPermissionQuery = 14LPCWSTR vcsMessageQueueGroupPermissionQuery =
15 L"SELECT `MessageQueueGroupPermission`, `MessageQueue_`, `MessageQueueGroupPermission`.`Component_`, `Domain`, `Name`, `Permissions` FROM `MessageQueueGroupPermission`, `Group` WHERE `Group_` = `Group`"; 15 L"SELECT `MessageQueueGroupPermission`, `MessageQueue_`, `MessageQueueGroupPermission`.`Component_`, `Domain`, `Name`, `Permissions` FROM `Wix4MessageQueueGroupPermission`, `Group` WHERE `Group_` = `Group`";
16enum eMessageQueuePermissionQuery { mqpqMessageQueuePermission = 1, mqpqMessageQueue, mqpqComponent, mqpqDomain, mqpqName, mqpqPermissions }; 16enum eMessageQueuePermissionQuery { mqpqMessageQueuePermission = 1, mqpqMessageQueue, mqpqComponent, mqpqDomain, mqpqName, mqpqPermissions };
17 17
18 18
diff --git a/src/ext/Msmq/ca/mqutilexec.cpp b/src/ext/Msmq/ca/mqutilexec.cpp
index a9c56e02..7055333b 100644
--- a/src/ext/Msmq/ca/mqutilexec.cpp
+++ b/src/ext/Msmq/ca/mqutilexec.cpp
@@ -40,7 +40,7 @@ static HRESULT CreateSidFromDomainRidPair(
40static HRESULT InitLsaUnicodeString( 40static HRESULT InitLsaUnicodeString(
41 PLSA_UNICODE_STRING plusStr, 41 PLSA_UNICODE_STRING plusStr,
42 LPCWSTR pwzStr, 42 LPCWSTR pwzStr,
43 DWORD dwLen 43 SIZE_T dwLen
44 ); 44 );
45static void FreeLsaUnicodeString( 45static void FreeLsaUnicodeString(
46 PLSA_UNICODE_STRING plusStr 46 PLSA_UNICODE_STRING plusStr
@@ -351,7 +351,7 @@ LExit:
351static HRESULT InitLsaUnicodeString( 351static HRESULT InitLsaUnicodeString(
352 PLSA_UNICODE_STRING plusStr, 352 PLSA_UNICODE_STRING plusStr,
353 LPCWSTR pwzStr, 353 LPCWSTR pwzStr,
354 DWORD dwLen 354 SIZE_T dwLen
355 ) 355 )
356{ 356{
357 HRESULT hr = S_OK; 357 HRESULT hr = S_OK;
diff --git a/src/ext/Msmq/ca/mqutilsched.cpp b/src/ext/Msmq/ca/mqutilsched.cpp
deleted file mode 100644
index 4353a6d6..00000000
--- a/src/ext/Msmq/ca/mqutilsched.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
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
3#include "precomp.h"
4
5
6// function definitions
7
8HRESULT PcaGuidToRegFormat(
9 LPWSTR pwzGuid,
10 LPWSTR pwzDest,
11 SIZE_T cchDest
12 )
13{
14 HRESULT hr = S_OK;
15
16 GUID guid = GUID_NULL;
17 int cch = 0;
18
19 WCHAR wz[39];
20 ::ZeroMemory(wz, sizeof(wz));
21
22 cch = lstrlenW(pwzGuid);
23
24 if (38 == cch && L'{' == pwzGuid[0] && L'}' == pwzGuid[37])
25 StringCchCopyW(wz, countof(wz), pwzGuid);
26 else if (36 == cch)
27 StringCchPrintfW(wz, countof(wz), L"{%s}", pwzGuid);
28 else
29 ExitFunction1(hr = E_INVALIDARG);
30
31 // convert string to guid
32 hr = ::CLSIDFromString(wz, &guid);
33 ExitOnFailure(hr, "Failed to parse guid string");
34
35 // convert guid to string
36 if (0 == ::StringFromGUID2(guid, pwzDest, cchDest))
37 ExitOnFailure(hr = E_FAIL, "Failed to convert guid to string");
38
39 hr = S_OK;
40
41LExit:
42 return hr;
43}
diff --git a/src/ext/Msmq/ca/mqutilsched.h b/src/ext/Msmq/ca/mqutilsched.h
deleted file mode 100644
index e172257d..00000000
--- a/src/ext/Msmq/ca/mqutilsched.h
+++ /dev/null
@@ -1,9 +0,0 @@
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
5HRESULT PcaGuidToRegFormat(
6 LPWSTR pwzGuid,
7 LPWSTR pwzDest,
8 SIZE_T cchDest
9 );
diff --git a/src/ext/Msmq/ca/msmqca.vcxproj b/src/ext/Msmq/ca/msmqca.vcxproj
index b00cd88e..0e712f63 100644
--- a/src/ext/Msmq/ca/msmqca.vcxproj
+++ b/src/ext/Msmq/ca/msmqca.vcxproj
@@ -1,10 +1,8 @@
1<?xml version="1.0" encoding="utf-8"?> 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. --> 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<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <Import Project="..\..\packages\WixToolset.DUtil.4.0.0-preview.0-build.1\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.0-preview.0-build.1\build\WixToolset.DUtil.props')" /> 4 <Import Project="..\..\packages\WixToolset.DUtil.4.0.0-preview.0-build.1\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.0-preview.0-build.1\build\WixToolset.DUtil.props')" />
6 <Import Project="..\..\packages\WixToolset.WcaUtil.4.0.17\build\WixToolset.WcaUtil.props" Condition="Exists('..\..\packages\WixToolset.WcaUtil.4.0.17\build\WixToolset.WcaUtil.props')" /> 5 <Import Project="..\..\packages\WixToolset.WcaUtil.4.0.17\build\WixToolset.WcaUtil.props" Condition="Exists('..\..\packages\WixToolset.WcaUtil.4.0.17\build\WixToolset.WcaUtil.props')" />
7
8 <ItemGroup Label="ProjectConfigurations"> 6 <ItemGroup Label="ProjectConfigurations">
9 <ProjectConfiguration Include="Debug|Win32"> 7 <ProjectConfiguration Include="Debug|Win32">
10 <Configuration>Debug</Configuration> 8 <Configuration>Debug</Configuration>
@@ -14,8 +12,23 @@
14 <Configuration>Release</Configuration> 12 <Configuration>Release</Configuration>
15 <Platform>Win32</Platform> 13 <Platform>Win32</Platform>
16 </ProjectConfiguration> 14 </ProjectConfiguration>
15 <ProjectConfiguration Include="Debug|X64">
16 <Configuration>Debug</Configuration>
17 <Platform>X64</Platform>
18 </ProjectConfiguration>
19 <ProjectConfiguration Include="Release|X64">
20 <Configuration>Release</Configuration>
21 <Platform>X64</Platform>
22 </ProjectConfiguration>
23 <ProjectConfiguration Include="Debug|ARM64">
24 <Configuration>Debug</Configuration>
25 <Platform>ARM64</Platform>
26 </ProjectConfiguration>
27 <ProjectConfiguration Include="Release|ARM64">
28 <Configuration>Release</Configuration>
29 <Platform>ARM64</Platform>
30 </ProjectConfiguration>
17 </ItemGroup> 31 </ItemGroup>
18
19 <PropertyGroup Label="Globals"> 32 <PropertyGroup Label="Globals">
20 <ProjectGuid>{CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}</ProjectGuid> 33 <ProjectGuid>{CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}</ProjectGuid>
21 <ConfigurationType>DynamicLibrary</ConfigurationType> 34 <ConfigurationType>DynamicLibrary</ConfigurationType>
@@ -24,14 +37,11 @@
24 <ProjectModuleDefinitionFile>msmqca.def</ProjectModuleDefinitionFile> 37 <ProjectModuleDefinitionFile>msmqca.def</ProjectModuleDefinitionFile>
25 <Description>WiX Toolset MSMQ CustomAction</Description> 38 <Description>WiX Toolset MSMQ CustomAction</Description>
26 </PropertyGroup> 39 </PropertyGroup>
27
28 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> 40 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
29 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> 41 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
30
31 <PropertyGroup> 42 <PropertyGroup>
32 <ProjectAdditionalLinkLibraries>msi.lib</ProjectAdditionalLinkLibraries> 43 <ProjectAdditionalLinkLibraries>msi.lib</ProjectAdditionalLinkLibraries>
33 </PropertyGroup> 44 </PropertyGroup>
34
35 <ItemGroup> 45 <ItemGroup>
36 <ClCompile Include="dllmain.cpp"> 46 <ClCompile Include="dllmain.cpp">
37 <PrecompiledHeader>Create</PrecompiledHeader> 47 <PrecompiledHeader>Create</PrecompiledHeader>
@@ -41,28 +51,22 @@
41 <ClCompile Include="mqqueuesched.cpp" /> 51 <ClCompile Include="mqqueuesched.cpp" />
42 <ClCompile Include="mqsched.cpp" /> 52 <ClCompile Include="mqsched.cpp" />
43 <ClCompile Include="mqutilexec.cpp" /> 53 <ClCompile Include="mqutilexec.cpp" />
44 <ClCompile Include="mqutilsched.cpp" />
45 </ItemGroup> 54 </ItemGroup>
46
47 <ItemGroup> 55 <ItemGroup>
48 <ClInclude Include="mqcost.h" /> 56 <ClInclude Include="mqcost.h" />
49 <ClInclude Include="mqqueueexec.h" /> 57 <ClInclude Include="mqqueueexec.h" />
50 <ClInclude Include="mqqueuesched.h" /> 58 <ClInclude Include="mqqueuesched.h" />
51 <ClInclude Include="mqutilexec.h" /> 59 <ClInclude Include="mqutilexec.h" />
52 <ClInclude Include="mqutilsched.h" />
53 <ClInclude Include="precomp.h" /> 60 <ClInclude Include="precomp.h" />
54 </ItemGroup> 61 </ItemGroup>
55
56 <ItemGroup> 62 <ItemGroup>
57 <None Include="msmqca.def" /> 63 <None Include="msmqca.def" />
58 </ItemGroup> 64 </ItemGroup>
59
60 <ItemGroup> 65 <ItemGroup>
61 <PackageReference Include="WixToolset.Dutil" /> 66 <PackageReference Include="WixToolset.Dutil" />
62 <PackageReference Include="WixToolset.WcaUtil" /> 67 <PackageReference Include="WixToolset.WcaUtil" />
63 <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" /> 68 <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
64 <PackageReference Include="GitInfo" PrivateAssets="All" /> 69 <PackageReference Include="GitInfo" PrivateAssets="All" />
65 </ItemGroup> 70 </ItemGroup>
66
67 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 71 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
68</Project> 72</Project> \ No newline at end of file
diff --git a/src/ext/Msmq/ca/precomp.h b/src/ext/Msmq/ca/precomp.h
index cbbff6ea..6fbd418c 100644
--- a/src/ext/Msmq/ca/precomp.h
+++ b/src/ext/Msmq/ca/precomp.h
@@ -17,7 +17,6 @@
17#include "CustomMsiErrors.h" 17#include "CustomMsiErrors.h"
18 18
19#include "mqcost.h" 19#include "mqcost.h"
20#include "mqutilsched.h"
21#include "mqqueuesched.h" 20#include "mqqueuesched.h"
22#include "mqutilexec.h" 21#include "mqutilexec.h"
23#include "mqqueueexec.h" 22#include "mqqueueexec.h"
diff --git a/src/ext/Msmq/test/WixToolsetTest.Msmq/MsmqExtensionFixture.cs b/src/ext/Msmq/test/WixToolsetTest.Msmq/MsmqExtensionFixture.cs
index a0fac3ca..c9d40d10 100644
--- a/src/ext/Msmq/test/WixToolsetTest.Msmq/MsmqExtensionFixture.cs
+++ b/src/ext/Msmq/test/WixToolsetTest.Msmq/MsmqExtensionFixture.cs
@@ -16,17 +16,25 @@ namespace WixToolsetTest.Msmq
16 var folder = TestData.Get(@"TestData\UsingMessageQueue"); 16 var folder = TestData.Get(@"TestData\UsingMessageQueue");
17 var build = new Builder(folder, typeof(MsmqExtensionFactory), new[] { folder }); 17 var build = new Builder(folder, typeof(MsmqExtensionFactory), new[] { folder });
18 18
19 var results = build.BuildAndQuery(Build, "MessageQueue"); 19 var results = build.BuildAndQuery(Build, "Wix4MessageQueue", "CustomAction");
20 WixAssert.CompareLineByLine(new[] 20 WixAssert.CompareLineByLine(new[]
21 { 21 {
22 "MessageQueue:TestMQ\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\t\t\tMQLabel\t\tMQPath\t\t\t\t0", 22 "CustomAction:Wix4MessageQueuingExecuteInstall_A64\t3073\tWix4MsmqCA_A64\tMessageQueuingExecuteInstall\t",
23 "CustomAction:Wix4MessageQueuingExecuteUninstall_A64\t3073\tWix4MsmqCA_A64\tMessageQueuingExecuteUninstall\t",
24 "CustomAction:Wix4MessageQueuingInstall_A64\t1\tWix4MsmqCA_A64\tMessageQueuingInstall\t",
25 "CustomAction:Wix4MessageQueuingRollbackInstall_A64\t3329\tWix4MsmqCA_A64\tMessageQueuingRollbackInstall\t",
26 "CustomAction:Wix4MessageQueuingRollbackUninstall_A64\t3329\tWix4MsmqCA_A64\tMessageQueuingRollbackUninstall\t",
27 "CustomAction:Wix4MessageQueuingUninstall_A64\t1\tWix4MsmqCA_A64\tMessageQueuingUninstall\t",
28 "Wix4MessageQueue:TestMQ\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\t\t\tMQLabel\t\tMQPath\t\t\t\t0",
23 }, results); 29 }, results);
24 } 30 }
25 31
26 private static void Build(string[] args) 32 private static void Build(string[] args)
27 { 33 {
28 var result = WixRunner.Execute(args) 34 args = args.Concat(new[] { "-arch", "arm64" }).ToArray();
29 .AssertSuccess(); 35
36 var result = WixRunner.Execute(args);
37 result.AssertSuccess();
30 } 38 }
31 } 39 }
32} 40}
diff --git a/src/ext/Msmq/test/WixToolsetTest.Msmq/TestData/UsingMessageQueue/Package.wxs b/src/ext/Msmq/test/WixToolsetTest.Msmq/TestData/UsingMessageQueue/Package.wxs
index bd31e81f..9524f3a4 100644
--- a/src/ext/Msmq/test/WixToolsetTest.Msmq/TestData/UsingMessageQueue/Package.wxs
+++ b/src/ext/Msmq/test/WixToolsetTest.Msmq/TestData/UsingMessageQueue/Package.wxs
@@ -1,5 +1,5 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" InstallerVersion="200"> 2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> 3 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
4 4
5 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> 5 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
diff --git a/src/ext/Msmq/wixext/MsmqCompiler.cs b/src/ext/Msmq/wixext/MsmqCompiler.cs
index cfc4ef65..8a811d40 100644
--- a/src/ext/Msmq/wixext/MsmqCompiler.cs
+++ b/src/ext/Msmq/wixext/MsmqCompiler.cs
@@ -7,6 +7,7 @@ namespace WixToolset.Msmq
7 using System.Xml.Linq; 7 using System.Xml.Linq;
8 using WixToolset.Data; 8 using WixToolset.Data;
9 using WixToolset.Extensibility; 9 using WixToolset.Extensibility;
10 using WixToolset.Extensibility.Data;
10 using WixToolset.Msmq.Symbols; 11 using WixToolset.Msmq.Symbols;
11 12
12 /// <summary> 13 /// <summary>
@@ -71,7 +72,6 @@ namespace WixToolset.Msmq
71 { 72 {
72 case "Component": 73 case "Component":
73 var componentId = context["ComponentId"]; 74 var componentId = context["ComponentId"];
74 var directoryId = context["DirectoryId"];
75 75
76 switch (element.Name.LocalName) 76 switch (element.Name.LocalName)
77 { 77 {
@@ -249,8 +249,8 @@ namespace WixToolset.Msmq
249 symbol.Quota = quota; 249 symbol.Quota = quota;
250 } 250 }
251 251
252 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.CustomAction, "MessageQueuingInstall"); 252 this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "Wix4MessageQueuingInstall", this.Context.Platform, CustomActionPlatforms.X86 | CustomActionPlatforms.X64 | CustomActionPlatforms.ARM64);
253 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.CustomAction, "MessageQueuingUninstall"); 253 this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "Wix4MessageQueuingUninstall", this.Context.Platform, CustomActionPlatforms.X86 | CustomActionPlatforms.X64 | CustomActionPlatforms.ARM64);
254 } 254 }
255 255
256 /// <summary> 256 /// <summary>
diff --git a/src/ext/Msmq/wixext/MsmqTableDefinitions.cs b/src/ext/Msmq/wixext/MsmqTableDefinitions.cs
index 46e2dd10..c48292bc 100644
--- a/src/ext/Msmq/wixext/MsmqTableDefinitions.cs
+++ b/src/ext/Msmq/wixext/MsmqTableDefinitions.cs
@@ -7,7 +7,7 @@ namespace WixToolset.Msmq
7 public static class MsmqTableDefinitions 7 public static class MsmqTableDefinitions
8 { 8 {
9 public static readonly TableDefinition MessageQueue = new TableDefinition( 9 public static readonly TableDefinition MessageQueue = new TableDefinition(
10 "MessageQueue", 10 "Wix4MessageQueue",
11 MsmqSymbolDefinitions.MessageQueue, 11 MsmqSymbolDefinitions.MessageQueue,
12 new[] 12 new[]
13 { 13 {
@@ -27,7 +27,7 @@ namespace WixToolset.Msmq
27 ); 27 );
28 28
29 public static readonly TableDefinition MessageQueueUserPermission = new TableDefinition( 29 public static readonly TableDefinition MessageQueueUserPermission = new TableDefinition(
30 "MessageQueueUserPermission", 30 "Wix4MessageQueueUserPermission",
31 MsmqSymbolDefinitions.MessageQueueUserPermission, 31 MsmqSymbolDefinitions.MessageQueueUserPermission,
32 new[] 32 new[]
33 { 33 {
@@ -41,7 +41,7 @@ namespace WixToolset.Msmq
41 ); 41 );
42 42
43 public static readonly TableDefinition MessageQueueGroupPermission = new TableDefinition( 43 public static readonly TableDefinition MessageQueueGroupPermission = new TableDefinition(
44 "MessageQueueGroupPermission", 44 "Wix4MessageQueueGroupPermission",
45 MsmqSymbolDefinitions.MessageQueueGroupPermission, 45 MsmqSymbolDefinitions.MessageQueueGroupPermission,
46 new[] 46 new[]
47 { 47 {
diff --git a/src/ext/Msmq/wixlib/MsmqExtension.wxs b/src/ext/Msmq/wixlib/MsmqExtension.wxs
index 87b2b382..a762575b 100644
--- a/src/ext/Msmq/wixlib/MsmqExtension.wxs
+++ b/src/ext/Msmq/wixlib/MsmqExtension.wxs
@@ -2,28 +2,13 @@
2 2
3 3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <?include ..\..\caerr.wxi ?> 5 <?include ..\..\caDecor.wxi ?>
6 6 <?include ..\..\caerr.wxi ?>
7 <Fragment> 7
8 <UI> 8 <Fragment>
9 <ProgressText Action="MessageQueuingExecuteInstall" Template="!(loc.MessageQueuingExecuteInstallTemplate)" Message="!(loc.MessageQueuingExecuteInstall)" /> 9 <UI Id="MsmqUI">
10 <ProgressText Action="MessageQueuingExecuteUninstall" Template="!(loc.MessageQueuingExecuteUninstallTemplate)" Message="!(loc.MessageQueuingExecuteUninstall)" /> 10 <ProgressText Action="$(var.Prefix)MessageQueuingExecuteInstall$(var.Suffix)" Template="!(loc.MessageQueuingExecuteInstallTemplate)" Message="!(loc.MessageQueuingExecuteInstall)" />
11 </UI> 11 <ProgressText Action="$(var.Prefix)MessageQueuingExecuteUninstall$(var.Suffix)" Template="!(loc.MessageQueuingExecuteUninstallTemplate)" Message="!(loc.MessageQueuingExecuteUninstall)" />
12 12 </UI>
13 <CustomAction Id="MessageQueuingInstall" DllEntry="MessageQueuingInstall" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="MsmqCA" /> 13 </Fragment>
14 <CustomAction Id="MessageQueuingUninstall" DllEntry="MessageQueuingUninstall" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="MsmqCA" />
15 <CustomAction Id="MessageQueuingExecuteInstall" DllEntry="MessageQueuingExecuteInstall" Execute="deferred" Return="check" Impersonate="no" SuppressModularization="yes" BinaryRef="MsmqCA" />
16 <CustomAction Id="MessageQueuingRollbackInstall" DllEntry="MessageQueuingRollbackInstall" Execute="rollback" Return="check" Impersonate="no" SuppressModularization="yes" BinaryRef="MsmqCA" />
17 <CustomAction Id="MessageQueuingExecuteUninstall" DllEntry="MessageQueuingExecuteUninstall" Execute="deferred" Return="check" Impersonate="no" SuppressModularization="yes" BinaryRef="MsmqCA" />
18 <CustomAction Id="MessageQueuingRollbackUninstall" DllEntry="MessageQueuingRollbackUninstall" Execute="rollback" Return="check" Impersonate="no" SuppressModularization="yes" BinaryRef="MsmqCA" />
19
20 <InstallExecuteSequence>
21 <Custom Action="MessageQueuingUninstall" After="DeleteServices" Overridable="yes" Condition="VersionNT &gt;= 500" />
22 <Custom Action="MessageQueuingInstall" Before="InstallServices" Overridable="yes" Condition="VersionNT &gt;= 500" />
23 </InstallExecuteSequence>
24 </Fragment>
25
26 <Fragment>
27 <Binary Id="MsmqCA" SourceFile="msmqca.dll" />
28 </Fragment>
29</Wix> 14</Wix>
diff --git a/src/ext/Msmq/wixlib/MsmqExtension_Platform.wxi b/src/ext/Msmq/wixlib/MsmqExtension_Platform.wxi
new file mode 100644
index 00000000..278bb3a8
--- /dev/null
+++ b/src/ext/Msmq/wixlib/MsmqExtension_Platform.wxi
@@ -0,0 +1,26 @@
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
3
4<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <?include ..\..\caDecor.wxi ?>
6
7 <Fragment>
8 <UIRef Id="MsmqUI" />
9
10 <CustomAction Id="$(var.Prefix)MessageQueuingInstall$(var.Suffix)" DllEntry="MessageQueuingInstall" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)MsmqCA$(var.Suffix)" />
11 <CustomAction Id="$(var.Prefix)MessageQueuingUninstall$(var.Suffix)" DllEntry="MessageQueuingUninstall" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)MsmqCA$(var.Suffix)" />
12 <CustomAction Id="$(var.Prefix)MessageQueuingExecuteInstall$(var.Suffix)" DllEntry="MessageQueuingExecuteInstall" Execute="deferred" Return="check" Impersonate="no" SuppressModularization="yes" BinaryRef="$(var.Prefix)MsmqCA$(var.Suffix)" />
13 <CustomAction Id="$(var.Prefix)MessageQueuingRollbackInstall$(var.Suffix)" DllEntry="MessageQueuingRollbackInstall" Execute="rollback" Return="check" Impersonate="no" SuppressModularization="yes" BinaryRef="$(var.Prefix)MsmqCA$(var.Suffix)" />
14 <CustomAction Id="$(var.Prefix)MessageQueuingExecuteUninstall$(var.Suffix)" DllEntry="MessageQueuingExecuteUninstall" Execute="deferred" Return="check" Impersonate="no" SuppressModularization="yes" BinaryRef="$(var.Prefix)MsmqCA$(var.Suffix)" />
15 <CustomAction Id="$(var.Prefix)MessageQueuingRollbackUninstall$(var.Suffix)" DllEntry="MessageQueuingRollbackUninstall" Execute="rollback" Return="check" Impersonate="no" SuppressModularization="yes" BinaryRef="$(var.Prefix)MsmqCA$(var.Suffix)" />
16
17 <InstallExecuteSequence>
18 <Custom Action="$(var.Prefix)MessageQueuingUninstall$(var.Suffix)" After="DeleteServices" Overridable="yes" Condition="VersionNT &gt;= 500" />
19 <Custom Action="$(var.Prefix)MessageQueuingInstall$(var.Suffix)" Before="InstallServices" Overridable="yes" Condition="VersionNT &gt;= 500" />
20 </InstallExecuteSequence>
21 </Fragment>
22
23 <Fragment>
24 <Binary Id="$(var.Prefix)MsmqCA$(var.Suffix)" SourceFile="!(bindpath.$(var.platform))msmqca.dll" />
25 </Fragment>
26</Include>
diff --git a/src/ext/Msmq/wixlib/MsmqExtension_arm64.wxs b/src/ext/Msmq/wixlib/MsmqExtension_arm64.wxs
new file mode 100644
index 00000000..f4ecad75
--- /dev/null
+++ b/src/ext/Msmq/wixlib/MsmqExtension_arm64.wxs
@@ -0,0 +1,7 @@
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
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <?define platform=arm64 ?>
6 <?include MsmqExtension_Platform.wxi ?>
7</Wix>
diff --git a/src/ext/Msmq/wixlib/MsmqExtension_x64.wxs b/src/ext/Msmq/wixlib/MsmqExtension_x64.wxs
new file mode 100644
index 00000000..3b1b3794
--- /dev/null
+++ b/src/ext/Msmq/wixlib/MsmqExtension_x64.wxs
@@ -0,0 +1,7 @@
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
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <?define platform=x64 ?>
6 <?include MsmqExtension_Platform.wxi ?>
7</Wix>
diff --git a/src/ext/Msmq/wixlib/MsmqExtension_x86.wxs b/src/ext/Msmq/wixlib/MsmqExtension_x86.wxs
new file mode 100644
index 00000000..a5c27ab5
--- /dev/null
+++ b/src/ext/Msmq/wixlib/MsmqExtension_x86.wxs
@@ -0,0 +1,7 @@
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
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <?define platform=x86 ?>
6 <?include MsmqExtension_Platform.wxi ?>
7</Wix>
diff --git a/src/ext/Msmq/wixlib/msmq.wixproj b/src/ext/Msmq/wixlib/msmq.wixproj
index 15111cb5..e2887823 100644
--- a/src/ext/Msmq/wixlib/msmq.wixproj
+++ b/src/ext/Msmq/wixlib/msmq.wixproj
@@ -7,7 +7,15 @@
7 </PropertyGroup> 7 </PropertyGroup>
8 8
9 <ItemGroup> 9 <ItemGroup>
10 <ProjectReference Include="..\ca\msmqca.vcxproj" ReferenceOutputAssembly="false" /> 10 <BindInputPaths Include="$(OutputPath)x86" BindName='x86' />
11 <BindInputPaths Include="$(OutputPath)x64" BindName='x64' />
12 <BindInputPaths Include="$(OutputPath)arm64" BindName='arm64' />
13 </ItemGroup>
14
15 <ItemGroup>
16 <ProjectReference Include="..\ca\msmqca.vcxproj" Properties="Platform=ARM64" />
17 <ProjectReference Include="..\ca\msmqca.vcxproj" Properties="Platform=x86" />
18 <ProjectReference Include="..\ca\msmqca.vcxproj" Properties="Platform=x64" />
11 </ItemGroup> 19 </ItemGroup>
12 20
13 <ItemGroup> 21 <ItemGroup>
diff --git a/src/ext/Util/wixlib/UtilExtension.wxs b/src/ext/Util/wixlib/UtilExtension.wxs
index f2786b25..bc19d89c 100644
--- a/src/ext/Util/wixlib/UtilExtension.wxs
+++ b/src/ext/Util/wixlib/UtilExtension.wxs
@@ -2,7 +2,6 @@
2 2
3 3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <?include ..\..\caDecor.wxi ?>
6 <?include ..\..\caerr.wxi ?> 5 <?include ..\..\caerr.wxi ?>
7 6
8 <Fragment> 7 <Fragment>
diff --git a/src/ext/Util/wixlib/util.wixproj b/src/ext/Util/wixlib/util.wixproj
index 56a16ff4..fa82fea2 100644
--- a/src/ext/Util/wixlib/util.wixproj
+++ b/src/ext/Util/wixlib/util.wixproj
@@ -12,12 +12,12 @@
12 </ItemGroup> 12 </ItemGroup>
13 13
14 <ItemGroup> 14 <ItemGroup>
15 <ProjectReference Include="..\be\utilbe.vcxproj" Properties="Platform=ARM64" ReferenceOutputAssembly="false" /> 15 <ProjectReference Include="..\be\utilbe.vcxproj" Properties="Platform=ARM64" />
16 <ProjectReference Include="..\be\utilbe.vcxproj" Properties="Platform=x86" ReferenceOutputAssembly="false" /> 16 <ProjectReference Include="..\be\utilbe.vcxproj" Properties="Platform=x86" />
17 <ProjectReference Include="..\be\utilbe.vcxproj" Properties="Platform=x64" ReferenceOutputAssembly="false" /> 17 <ProjectReference Include="..\be\utilbe.vcxproj" Properties="Platform=x64" />
18 <ProjectReference Include="..\ca\utilca.vcxproj" Properties="Platform=ARM64" ReferenceOutputAssembly="false" /> 18 <ProjectReference Include="..\ca\utilca.vcxproj" Properties="Platform=ARM64" />
19 <ProjectReference Include="..\ca\utilca.vcxproj" Properties="Platform=x86" ReferenceOutputAssembly="false" /> 19 <ProjectReference Include="..\ca\utilca.vcxproj" Properties="Platform=x86" />
20 <ProjectReference Include="..\ca\utilca.vcxproj" Properties="Platform=x64" ReferenceOutputAssembly="false" /> 20 <ProjectReference Include="..\ca\utilca.vcxproj" Properties="Platform=x64" />
21 </ItemGroup> 21 </ItemGroup>
22 22
23 <ItemGroup> 23 <ItemGroup>