aboutsummaryrefslogtreecommitdiff
path: root/src/ext/Msmq
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext/Msmq')
-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
17 files changed, 109 insertions, 110 deletions
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>