aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2023-02-27 21:38:47 -0500
committerRob Mensching <rob@firegiant.com>2023-02-28 00:48:08 -0800
commit696880ef8e3125b4f508b8c10a6728321323c6b4 (patch)
tree3c4f99159f1c4082cc2a7f4b601a326659868412
parent543f0a200448b031c9ec8e7e7d139548659a3a32 (diff)
downloadwix-696880ef8e3125b4f508b8c10a6728321323c6b4.tar.gz
wix-696880ef8e3125b4f508b8c10a6728321323c6b4.tar.bz2
wix-696880ef8e3125b4f508b8c10a6728321323c6b4.zip
Add NetFx 4.8.1 detection and package groups.
Fixes https://github.com/wixtoolset/issues/issues/7239.
-rw-r--r--src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs32
-rw-r--r--src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingNetFxPackages/BundleLatest.wxs11
-rw-r--r--src/ext/NetFx/wixlib/NetFx481.wxs111
3 files changed, 154 insertions, 0 deletions
diff --git a/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs b/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs
index dea42bd5..38997c67 100644
--- a/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs
+++ b/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs
@@ -77,6 +77,38 @@ namespace WixToolsetTest.Netfx
77 } 77 }
78 78
79 [Fact] 79 [Fact]
80 public void CanBuildUsingNetFx481Packages()
81 {
82 using (var fs = new DisposableFileSystem())
83 {
84 var baseFolder = fs.GetFolder();
85 var bundleFile = Path.Combine(baseFolder, "bin", "test.exe");
86 var bundleSourceFolder = TestData.Get(@"TestData\UsingNetFxPackages");
87 var intermediateFolder = Path.Combine(baseFolder, "obj");
88
89 var extensionResult = WixRunner.Execute(new[]
90 {
91 "extension", "add",
92 "WixToolset.Bal.wixext"
93 });
94
95 var compileResult = WixRunner.Execute(new[]
96 {
97 "build",
98 Path.Combine(bundleSourceFolder, "BundleLatest.wxs"),
99 "-ext", "WixToolset.Bal.wixext",
100 "-ext", TestData.Get(@"WixToolset.Netfx.wixext.dll"),
101 "-intermediateFolder", intermediateFolder,
102 "-o", bundleFile,
103 "-arch", "x64",
104 });
105 compileResult.AssertSuccess();
106
107 Assert.True(File.Exists(bundleFile));
108 }
109 }
110
111 [Fact]
80 public void CanBuildUsingNativeImage() 112 public void CanBuildUsingNativeImage()
81 { 113 {
82 var folder = TestData.Get(@"TestData\UsingNativeImage"); 114 var folder = TestData.Get(@"TestData\UsingNativeImage");
diff --git a/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingNetFxPackages/BundleLatest.wxs b/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingNetFxPackages/BundleLatest.wxs
new file mode 100644
index 00000000..6457abfe
--- /dev/null
+++ b/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingNetFxPackages/BundleLatest.wxs
@@ -0,0 +1,11 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
2 <Bundle Name="NetFxPackageGroup481" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="{1A204524-03F4-4641-BDF3-2A272A34A888}">
3 <BootstrapperApplication>
4 <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" />
5 </BootstrapperApplication>
6
7 <Chain>
8 <PackageGroupRef Id="NetFx481RedistAsPrereq" />
9 </Chain>
10 </Bundle>
11</Wix>
diff --git a/src/ext/NetFx/wixlib/NetFx481.wxs b/src/ext/NetFx/wixlib/NetFx481.wxs
new file mode 100644
index 00000000..b0da8bb0
--- /dev/null
+++ b/src/ext/NetFx/wixlib/NetFx481.wxs
@@ -0,0 +1,111 @@
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<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
4
5 <!--
6 .NET Framework installation state properties
7
8 Official documentation can be found at the following locations:
9 https://learn.microsoft.com/en-us/dotnet/framework/install/guide-for-developers
10 https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed
11 -->
12
13 <?define NetFx481MinRelease = 533320 ?>
14 <?define NetFx481WebLink = https://go.microsoft.com/fwlink/?LinkId=2203304 ?>
15 <?define NetFx481RedistLink = https://go.microsoft.com/fwlink/?linkid=2203305 ?>
16 <?define NetFx481EulaLink = https://referencesource.microsoft.com/license.html ?>
17 <?define NetFx481WebId = NetFx481Web ?>
18 <?define NetFx481RedistId = NetFx481Redist ?>
19
20 <Fragment>
21 <PropertyRef Id="WIXNETFX4RELEASEINSTALLED" />
22 <Property Id="WIX_IS_NETFRAMEWORK_481_OR_LATER_INSTALLED" Secure="yes" />
23 <SetProperty Id="WIX_IS_NETFRAMEWORK_481_OR_LATER_INSTALLED" Value="1" After="AppSearch" Condition="WIXNETFX4RELEASEINSTALLED &gt;= &quot;#$(var.NetFx481MinRelease)&quot;" />
24 </Fragment>
25
26 <Fragment>
27 <util:RegistrySearchRef Id="NETFRAMEWORK45" />
28
29 <WixVariable Id="NetFx481WebDetectCondition" Value="NETFRAMEWORK45 &gt;= $(var.NetFx481MinRelease)" Overridable="yes" />
30 <WixVariable Id="NetFx481WebInstallCondition" Value="" Overridable="yes" />
31 <WixVariable Id="NetFx481WebPackageDirectory" Value="redist\" Overridable="yes" />
32
33 <PackageGroup Id="$(var.NetFx481WebId)">
34 <ExePackage
35 CacheId="$(var.NetFx481WebId)_AFBF0B8B6A18F7E23CCA1DDCD0AC1A55B4035173"
36 InstallArguments="/q /norestart /log &quot;[NetFx481WebLog].html&quot;"
37 PerMachine="yes"
38 DetectCondition="!(wix.NetFx481WebDetectCondition)"
39 InstallCondition="!(wix.NetFx481WebInstallCondition)"
40 Id="$(var.NetFx481WebId)"
41 Vital="yes"
42 Permanent="yes"
43 Protocol="netfx4"
44 LogPathVariable="NetFx481WebLog"
45 Cache="remove">
46
47 <ExePackagePayload
48 Name="!(wix.NetFx481WebPackageDirectory)ndp481-web.exe"
49 DownloadUrl="$(var.NetFx481WebLink)"
50 ProductName="Microsoft .NET Framework 4.8.1"
51 Description="Microsoft .NET Framework 4.8.1 Setup"
52 CertificatePublicKey="0A7D1EFF01D4EBAD21E85C51499576EBAA40E676"
53 CertificateThumbprint="AFBF0B8B6A18F7E23CCA1DDCD0AC1A55B4035173"
54 Size="1460448"
55 Version="4.8.09037.06"
56 />
57 </ExePackage>
58 </PackageGroup>
59 </Fragment>
60
61 <Fragment>
62 <PackageGroup Id="$(var.NetFx481WebId)AsPrereq">
63 <PackageGroupRef Id="$(var.NetFx481WebId)" />
64 </PackageGroup>
65
66 <bal:ManagedBootstrapperApplicationPrereqInformation PackageId="$(var.NetFx481WebId)" LicenseUrl="$(var.NetFx481EulaLink)" />
67 </Fragment>
68
69 <Fragment>
70 <util:RegistrySearchRef Id="NETFRAMEWORK45" />
71
72 <WixVariable Id="NetFx481RedistDetectCondition" Value="NETFRAMEWORK45 &gt;= $(var.NetFx481MinRelease)" Overridable="yes" />
73 <WixVariable Id="NetFx481RedistInstallCondition" Value="" Overridable="yes" />
74 <WixVariable Id="NetFx481RedistPackageDirectory" Value="redist\" Overridable="yes" />
75
76 <PackageGroup Id="$(var.NetFx481RedistId)">
77 <ExePackage
78 CacheId="$(var.NetFx481RedistId)_AFBF0B8B6A18F7E23CCA1DDCD0AC1A55B4035173"
79 InstallArguments="/q /norestart /log &quot;[NetFx481RedistLog].html&quot;"
80 PerMachine="yes"
81 DetectCondition="!(wix.NetFx481RedistDetectCondition)"
82 InstallCondition="!(wix.NetFx481RedistInstallCondition)"
83 Id="$(var.NetFx481RedistId)"
84 Vital="yes"
85 Permanent="yes"
86 Protocol="netfx4"
87 LogPathVariable="NetFx481RedistLog"
88 Cache="remove">
89
90 <ExePackagePayload
91 Name="!(wix.NetFx481RedistPackageDirectory)ndp481-x86-x64-allos-enu.exe"
92 DownloadUrl="$(var.NetFx481RedistLink)"
93 ProductName="Microsoft .NET Framework 4.8.1"
94 Description="Microsoft .NET Framework 4.8.1 Setup"
95 CertificatePublicKey="0A7D1EFF01D4EBAD21E85C51499576EBAA40E676"
96 CertificateThumbprint="AFBF0B8B6A18F7E23CCA1DDCD0AC1A55B4035173"
97 Size="63610344"
98 Version="4.8.09037.06"
99 />
100 </ExePackage>
101 </PackageGroup>
102 </Fragment>
103
104 <Fragment>
105 <PackageGroup Id="$(var.NetFx481RedistId)AsPrereq">
106 <PackageGroupRef Id="$(var.NetFx481RedistId)" />
107 </PackageGroup>
108
109 <bal:ManagedBootstrapperApplicationPrereqInformation PackageId="$(var.NetFx481RedistId)" LicenseUrl="$(var.NetFx481EulaLink)" />
110 </Fragment>
111</Wix>