From 1979837ff79b46ce0a03e25b82e239c37348ec4d Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sun, 14 Jun 2020 16:03:52 -0400 Subject: Enable platform-specific CAs, including ARM64 - Update to latest dependencies. --- src/ca/netfxca.vcxproj | 34 +++++++++-- src/ca/packages.config | 4 +- .../WixToolsetTest.Netfx/NetfxExtensionFixture.cs | 70 +++++++++++++++++++++- .../TestData/UsingNativeImage/Package.wxs | 2 +- src/wixext/NetFxCompiler.cs | 2 +- src/wixlib/NetFxExtension_arm.wxs | 8 +++ src/wixlib/NetFxExtension_arm64.wxs | 8 +++ src/wixlib/NetFxExtension_x64.wxs | 8 +++ src/wixlib/netfx.wixproj | 31 ++++++++-- src/wixlib/packages.config | 6 +- 10 files changed, 152 insertions(+), 21 deletions(-) create mode 100644 src/wixlib/NetFxExtension_arm.wxs create mode 100644 src/wixlib/NetFxExtension_arm64.wxs create mode 100644 src/wixlib/NetFxExtension_x64.wxs (limited to 'src') diff --git a/src/ca/netfxca.vcxproj b/src/ca/netfxca.vcxproj index 5ceb914a..b68c265b 100644 --- a/src/ca/netfxca.vcxproj +++ b/src/ca/netfxca.vcxproj @@ -1,8 +1,8 @@ - - + + Debug @@ -12,12 +12,36 @@ Release Win32 + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + Debug + ARM64 + + + Release + ARM64 + {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981} DynamicLibrary netfxca - v141 + v142 Unicode netfxca.def WiX Toolset .NET Framework CustomAction @@ -46,7 +70,7 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + \ No newline at end of file diff --git a/src/ca/packages.config b/src/ca/packages.config index 59e81af5..3a296ead 100644 --- a/src/ca/packages.config +++ b/src/ca/packages.config @@ -1,5 +1,5 @@  - - + + \ No newline at end of file diff --git a/src/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs b/src/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs index 15c31088..8bcac8df 100644 --- a/src/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs +++ b/src/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs @@ -42,17 +42,81 @@ namespace WixToolsetTest.Netfx var folder = TestData.Get(@"TestData\UsingNativeImage"); var build = new Builder(folder, typeof(NetfxExtensionFactory), new[] { folder }); - var results = build.BuildAndQuery(Build, "Wix4NetFxNativeImage"); + var results = build.BuildAndQuery(Build, "Binary", "CustomAction", "Wix4NetFxNativeImage"); Assert.Equal(new[] { + "Binary:Wix4NetFxCA_X86\t[Binary data]", + "CustomAction:Wix4NetFxExecuteNativeImageCommitInstall_X86\t3649\tWix4NetFxCA_X86\tExecNetFx\t", + "CustomAction:Wix4NetFxExecuteNativeImageCommitUninstall_X86\t3649\tWix4NetFxCA_X86\tExecNetFx\t", + "CustomAction:Wix4NetFxExecuteNativeImageInstall_X86\t3137\tWix4NetFxCA_X86\tExecNetFx\t", + "CustomAction:Wix4NetFxExecuteNativeImageUninstall_X86\t3137\tWix4NetFxCA_X86\tExecNetFx\t", + "CustomAction:Wix4NetFxScheduleNativeImage_X86\t1\tWix4NetFxCA_X86\tSchedNetFx\t", + "Wix4NetFxNativeImage:ExampleNgen\tfil6349_KNDJhqShNzVdHX3ihhvA6Y\t3\t8\t\t", + }, results.OrderBy(s => s).ToArray()); + } + + [Fact] + public void CanBuildUsingNativeImageX64() + { + var folder = TestData.Get(@"TestData\UsingNativeImage"); + var build = new Builder(folder, typeof(NetfxExtensionFactory), new[] { folder }); + + var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "Wix4NetFxNativeImage"); + Assert.Equal(new[] + { + "Binary:Wix4NetFxCA_X64\t[Binary data]", + "CustomAction:Wix4NetFxExecuteNativeImageCommitInstall_X64\t3649\tWix4NetFxCA_X64\tExecNetFx\t", + "CustomAction:Wix4NetFxExecuteNativeImageCommitUninstall_X64\t3649\tWix4NetFxCA_X64\tExecNetFx\t", + "CustomAction:Wix4NetFxExecuteNativeImageInstall_X64\t3137\tWix4NetFxCA_X64\tExecNetFx\t", + "CustomAction:Wix4NetFxExecuteNativeImageUninstall_X64\t3137\tWix4NetFxCA_X64\tExecNetFx\t", + "CustomAction:Wix4NetFxScheduleNativeImage_X64\t1\tWix4NetFxCA_X64\tSchedNetFx\t", + "Wix4NetFxNativeImage:ExampleNgen\tfil6349_KNDJhqShNzVdHX3ihhvA6Y\t3\t8\t\t", + }, results.OrderBy(s => s).ToArray()); + } + + [Fact] + public void CanBuildUsingNativeImageARM64() + { + var folder = TestData.Get(@"TestData\UsingNativeImage"); + var build = new Builder(folder, typeof(NetfxExtensionFactory), new[] { folder }); + + var results = build.BuildAndQuery(BuildARM64, "Binary", "CustomAction", "Wix4NetFxNativeImage"); + Assert.Equal(new[] + { + "Binary:Wix4NetFxCA_A64\t[Binary data]", + "CustomAction:Wix4NetFxExecuteNativeImageCommitInstall_A64\t3649\tWix4NetFxCA_A64\tExecNetFx\t", + "CustomAction:Wix4NetFxExecuteNativeImageCommitUninstall_A64\t3649\tWix4NetFxCA_A64\tExecNetFx\t", + "CustomAction:Wix4NetFxExecuteNativeImageInstall_A64\t3137\tWix4NetFxCA_A64\tExecNetFx\t", + "CustomAction:Wix4NetFxExecuteNativeImageUninstall_A64\t3137\tWix4NetFxCA_A64\tExecNetFx\t", + "CustomAction:Wix4NetFxScheduleNativeImage_A64\t1\tWix4NetFxCA_A64\tSchedNetFx\t", "Wix4NetFxNativeImage:ExampleNgen\tfil6349_KNDJhqShNzVdHX3ihhvA6Y\t3\t8\t\t", }, results.OrderBy(s => s).ToArray()); } private static void Build(string[] args) { - var result = WixRunner.Execute(args) - .AssertSuccess(); + var result = WixRunner.Execute(args); + result.AssertSuccess(); + } + + private static void BuildX64(string[] args) + { + var newArgs = args.ToList(); + newArgs.Add("-platform"); + newArgs.Add("x64"); + + var result = WixRunner.Execute(newArgs.ToArray()); + result.AssertSuccess(); + } + + private static void BuildARM64(string[] args) + { + var newArgs = args.ToList(); + newArgs.Add("-platform"); + newArgs.Add("arm64"); + + var result = WixRunner.Execute(newArgs.ToArray()); + result.AssertSuccess(); } } } diff --git a/src/test/WixToolsetTest.Netfx/TestData/UsingNativeImage/Package.wxs b/src/test/WixToolsetTest.Netfx/TestData/UsingNativeImage/Package.wxs index 68ff98fd..7cffdb5b 100644 --- a/src/test/WixToolsetTest.Netfx/TestData/UsingNativeImage/Package.wxs +++ b/src/test/WixToolsetTest.Netfx/TestData/UsingNativeImage/Package.wxs @@ -1,7 +1,7 @@ - + diff --git a/src/wixext/NetFxCompiler.cs b/src/wixext/NetFxCompiler.cs index 58c8c0f6..e12cca6b 100644 --- a/src/wixext/NetFxCompiler.cs +++ b/src/wixext/NetFxCompiler.cs @@ -145,7 +145,7 @@ namespace WixToolset.Netfx this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); - this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "NetFxScheduleNativeImage", this.Context.Platform, CustomActionPlatforms.X86); + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "NetFxScheduleNativeImage", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.ARM64 | CustomActionPlatforms.X64 | CustomActionPlatforms.X86); if (!this.Messaging.EncounteredError) { diff --git a/src/wixlib/NetFxExtension_arm.wxs b/src/wixlib/NetFxExtension_arm.wxs new file mode 100644 index 00000000..8b5c508b --- /dev/null +++ b/src/wixlib/NetFxExtension_arm.wxs @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/wixlib/NetFxExtension_arm64.wxs b/src/wixlib/NetFxExtension_arm64.wxs new file mode 100644 index 00000000..8b1f9d36 --- /dev/null +++ b/src/wixlib/NetFxExtension_arm64.wxs @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/wixlib/NetFxExtension_x64.wxs b/src/wixlib/NetFxExtension_x64.wxs new file mode 100644 index 00000000..cc079e5a --- /dev/null +++ b/src/wixlib/NetFxExtension_x64.wxs @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/wixlib/netfx.wixproj b/src/wixlib/netfx.wixproj index c153eda9..e0e052d1 100644 --- a/src/wixlib/netfx.wixproj +++ b/src/wixlib/netfx.wixproj @@ -1,7 +1,7 @@ - + {45e4a6ac-3190-4e17-83f0-9935ffa5dc2b} @@ -28,6 +28,9 @@ + + + @@ -48,6 +51,22 @@ netfxca {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981} + Platform=ARM + + + netfxca + {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981} + Platform=ARM64 + + + netfxca + {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981} + Platform=x86 + + + netfxca + {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981} + Platform=x64 @@ -60,11 +79,11 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - + + + - - + + \ No newline at end of file diff --git a/src/wixlib/packages.config b/src/wixlib/packages.config index f7ce1fd5..e71c3d9d 100644 --- a/src/wixlib/packages.config +++ b/src/wixlib/packages.config @@ -1,7 +1,7 @@  - - - + + + \ No newline at end of file -- cgit v1.2.3-55-g6feb