aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2021-05-16 21:53:08 -0700
committerRob Mensching <rob@firegiant.com>2021-05-17 01:01:59 -0700
commita962b626a238dab205c7d0dccd52120081ccf5d3 (patch)
tree885f5d826814f70c4f2d2f4c31b0b68d2960e7a1
parent004d363a692511a7b5a05cea05df7f8244afe6a4 (diff)
downloadwix-a962b626a238dab205c7d0dccd52120081ccf5d3.tar.gz
wix-a962b626a238dab205c7d0dccd52120081ccf5d3.tar.bz2
wix-a962b626a238dab205c7d0dccd52120081ccf5d3.zip
Update package Cache attribute to new attribute values
Closes wixtoolset/issues#5125
-rw-r--r--src/api/wix/WixToolset.Data/BundleCacheType.cs19
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs4
-rw-r--r--src/api/wix/WixToolset.Data/YesNoAlwaysType.cs25
-rw-r--r--src/ext/NetFx/wixlib/NetCore3.1.12_x64.wxs6
-rw-r--r--src/ext/NetFx/wixlib/NetCore3.1.12_x86.wxs6
-rw-r--r--src/ext/NetFx/wixlib/NetFx452.wxs4
-rw-r--r--src/ext/NetFx/wixlib/NetFx46.wxs4
-rw-r--r--src/ext/NetFx/wixlib/NetFx461.wxs4
-rw-r--r--src/ext/NetFx/wixlib/NetFx462.wxs2
-rw-r--r--src/ext/NetFx/wixlib/NetFx472.wxs4
-rw-r--r--src/ext/NetFx/wixlib/NetFx48.wxs4
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleAv1/BundleAv1.wxs2
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleAv1_0_1/BundleAv1_0_1.wxs2
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleB/BundleB.wxs2
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleD/BundleD.wxs2
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleE/BundleE.wxs2
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleF_AddOnA/BundleF_AddOn.wxs2
-rw-r--r--src/test/burn/TestData/PrereqBaTests/BundleA/BundleA.wxs2
-rw-r--r--src/wix/WixToolset.Converters/WixConverter.cs44
-rw-r--r--src/wix/WixToolset.Core.Burn/Bundles/CreateBootstrapperApplicationManifestCommand.cs6
-rw-r--r--src/wix/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs6
-rw-r--r--src/wix/WixToolset.Core/Compiler_Bundle.cs22
-rw-r--r--src/wix/heat/Serialize/wix.cs112
-rw-r--r--src/wix/test/WixToolsetTest.Converters/BundleCacheFixture.cs154
24 files changed, 311 insertions, 129 deletions
diff --git a/src/api/wix/WixToolset.Data/BundleCacheType.cs b/src/api/wix/WixToolset.Data/BundleCacheType.cs
new file mode 100644
index 00000000..7d297d4b
--- /dev/null
+++ b/src/api/wix/WixToolset.Data/BundleCacheType.cs
@@ -0,0 +1,19 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolset.Data
4{
5 /// <summary>
6 /// Keep, Remove, Force xml simple type.
7 /// </summary>
8 public enum BundleCacheType
9 {
10 /// <summary>The keep value.</summary>
11 Keep,
12
13 /// <summary>The remove value.</summary>
14 Remove,
15
16 /// <summary>The force value.</summary>
17 Force,
18 }
19}
diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs
index cbe7f761..3d1a6ce8 100644
--- a/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs
@@ -117,9 +117,9 @@ namespace WixToolset.Data.Symbols
117 set => this.Set((int)WixBundlePackageSymbolFields.InstallCondition, value); 117 set => this.Set((int)WixBundlePackageSymbolFields.InstallCondition, value);
118 } 118 }
119 119
120 public YesNoAlwaysType Cache 120 public BundleCacheType? Cache
121 { 121 {
122 get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.Cache], true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; 122 get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.Cache], true, out BundleCacheType value) ? value : (BundleCacheType?)null;
123 set => this.Set((int)WixBundlePackageSymbolFields.Cache, value.ToString().ToLowerInvariant()); 123 set => this.Set((int)WixBundlePackageSymbolFields.Cache, value.ToString().ToLowerInvariant());
124 } 124 }
125 125
diff --git a/src/api/wix/WixToolset.Data/YesNoAlwaysType.cs b/src/api/wix/WixToolset.Data/YesNoAlwaysType.cs
deleted file mode 100644
index 3b4ca5d7..00000000
--- a/src/api/wix/WixToolset.Data/YesNoAlwaysType.cs
+++ /dev/null
@@ -1,25 +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
3namespace WixToolset.Data
4{
5 /// <summary>
6 /// Yes, No, Always xml simple type.
7 /// </summary>
8 public enum YesNoAlwaysType
9 {
10 /// <summary>Not a valid yes, no or always value.</summary>
11 IllegalValue = -2,
12
13 /// <summary>Value not set; equivalent to null for reference types.</summary>
14 NotSet = -1,
15
16 /// <summary>The no value.</summary>
17 No,
18
19 /// <summary>The yes value.</summary>
20 Yes,
21
22 /// <summary>The always value.</summary>
23 Always,
24 }
25}
diff --git a/src/ext/NetFx/wixlib/NetCore3.1.12_x64.wxs b/src/ext/NetFx/wixlib/NetCore3.1.12_x64.wxs
index d3e87d2a..ee15852f 100644
--- a/src/ext/NetFx/wixlib/NetCore3.1.12_x64.wxs
+++ b/src/ext/NetFx/wixlib/NetCore3.1.12_x64.wxs
@@ -20,7 +20,7 @@
20 <WixVariable Id="AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 20 <WixVariable Id="AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
21 21
22 <PackageGroup Id="$(var.AspNetCoreRedistId)"> 22 <PackageGroup Id="$(var.AspNetCoreRedistId)">
23 <ExePackage InstallArguments="$(var.AspNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.AspNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.AspNetCoreRedistLog)" Cache="no"> 23 <ExePackage InstallArguments="$(var.AspNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.AspNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.AspNetCoreRedistLog)" Cache="remove">
24 <ExePackagePayload Name="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)aspnetcore-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.AspNetCoreRedistLink)" Description="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Hash="5CE9839CAE90FB2936033431F2905E97C7DC080DC50108D58714939CCCC6A265694B8259A3BF742A68BF04D9CFFB0602B0306DD401C4CE644BDB96C7D1168E59" ProductName="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Size="7841808" Version="3.1.12.21070" /> 24 <ExePackagePayload Name="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)aspnetcore-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.AspNetCoreRedistLink)" Description="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Hash="5CE9839CAE90FB2936033431F2905E97C7DC080DC50108D58714939CCCC6A265694B8259A3BF742A68BF04D9CFFB0602B0306DD401C4CE644BDB96C7D1168E59" ProductName="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Size="7841808" Version="3.1.12.21070" />
25 </ExePackage> 25 </ExePackage>
26 </PackageGroup> 26 </PackageGroup>
@@ -35,7 +35,7 @@
35 <WixVariable Id="DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 35 <WixVariable Id="DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
36 36
37 <PackageGroup Id="$(var.DesktopNetCoreRedistId)"> 37 <PackageGroup Id="$(var.DesktopNetCoreRedistId)">
38 <ExePackage InstallArguments="$(var.DesktopNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DesktopNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DesktopNetCoreRedistLog)" Cache="no"> 38 <ExePackage InstallArguments="$(var.DesktopNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DesktopNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DesktopNetCoreRedistLog)" Cache="remove">
39 <ExePackagePayload Name="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)windowsdesktop-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DesktopNetCoreRedistLink)" Description="Microsoft Windows Desktop Runtime - 3.1.12 (x64)" Hash="CD69B8722B2FF175FADD6774AB6A97F89292FC57A15CEC95218E79FFF1E26F46A7EFFFB15CE0F6D22B83B991F7083BB5C04F5158F87D298EA0F204933F8ECD27" ProductName="Microsoft Windows Desktop Runtime - 3.1.12 (x64)" Size="54284816" Version="3.1.12.29719" /> 39 <ExePackagePayload Name="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)windowsdesktop-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DesktopNetCoreRedistLink)" Description="Microsoft Windows Desktop Runtime - 3.1.12 (x64)" Hash="CD69B8722B2FF175FADD6774AB6A97F89292FC57A15CEC95218E79FFF1E26F46A7EFFFB15CE0F6D22B83B991F7083BB5C04F5158F87D298EA0F204933F8ECD27" ProductName="Microsoft Windows Desktop Runtime - 3.1.12 (x64)" Size="54284816" Version="3.1.12.29719" />
40 </ExePackage> 40 </ExePackage>
41 </PackageGroup> 41 </PackageGroup>
@@ -50,7 +50,7 @@
50 <WixVariable Id="DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 50 <WixVariable Id="DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
51 51
52 <PackageGroup Id="$(var.DotNetCoreRedistId)"> 52 <PackageGroup Id="$(var.DotNetCoreRedistId)">
53 <ExePackage InstallArguments="$(var.DotNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DotNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DotNetCoreRedistLog)" Cache="no"> 53 <ExePackage InstallArguments="$(var.DotNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DotNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DotNetCoreRedistLog)" Cache="remove">
54 <ExePackagePayload Name="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)dotnet-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DotNetCoreRedistLink)" Description="Microsoft .NET Core Runtime - 3.1.12 (x64)" Hash="9B3F882AE5DFDC8B50D3CEC4F3292292D658B2FECB84B3F73426FB3C16E6FC6B8E7118EF559CFAE25ED7A2C175FA4D89E18986CA3C05D15F706524FBB667F702" ProductName="Microsoft .NET Core Runtime - 3.1.12 (x64)" Size="26090616" Version="3.1.12.29719" /> 54 <ExePackagePayload Name="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)dotnet-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DotNetCoreRedistLink)" Description="Microsoft .NET Core Runtime - 3.1.12 (x64)" Hash="9B3F882AE5DFDC8B50D3CEC4F3292292D658B2FECB84B3F73426FB3C16E6FC6B8E7118EF559CFAE25ED7A2C175FA4D89E18986CA3C05D15F706524FBB667F702" ProductName="Microsoft .NET Core Runtime - 3.1.12 (x64)" Size="26090616" Version="3.1.12.29719" />
55 </ExePackage> 55 </ExePackage>
56 </PackageGroup> 56 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetCore3.1.12_x86.wxs b/src/ext/NetFx/wixlib/NetCore3.1.12_x86.wxs
index e97b3144..909380d5 100644
--- a/src/ext/NetFx/wixlib/NetCore3.1.12_x86.wxs
+++ b/src/ext/NetFx/wixlib/NetCore3.1.12_x86.wxs
@@ -20,7 +20,7 @@
20 <WixVariable Id="AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 20 <WixVariable Id="AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
21 21
22 <PackageGroup Id="$(var.AspNetCoreRedistId)"> 22 <PackageGroup Id="$(var.AspNetCoreRedistId)">
23 <ExePackage InstallArguments="$(var.AspNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.AspNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.AspNetCoreRedistLog)" Cache="no"> 23 <ExePackage InstallArguments="$(var.AspNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.AspNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.AspNetCoreRedistLog)" Cache="remove">
24 <ExePackagePayload Name="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)aspnetcore-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.AspNetCoreRedistLink)" Description="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Hash="03EE5F6D3B2AF8FFE2A5154BB05E50938E2D36E98D996D9E67A3C349DD0C8B3051D5A9628F48C51E006CEA0B1F4484B4BE51920FE5CA841060B0D2C6A12FD5D2" ProductName="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Size="7841808" Version="3.1.12.21070" /> 24 <ExePackagePayload Name="!(wix.AspNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)aspnetcore-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.AspNetCoreRedistLink)" Description="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Hash="03EE5F6D3B2AF8FFE2A5154BB05E50938E2D36E98D996D9E67A3C349DD0C8B3051D5A9628F48C51E006CEA0B1F4484B4BE51920FE5CA841060B0D2C6A12FD5D2" ProductName="Microsoft ASP.NET Core 3.1.12 - Shared Framework" Size="7841808" Version="3.1.12.21070" />
25 </ExePackage> 25 </ExePackage>
26 </PackageGroup> 26 </PackageGroup>
@@ -35,7 +35,7 @@
35 <WixVariable Id="DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 35 <WixVariable Id="DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
36 36
37 <PackageGroup Id="$(var.DesktopNetCoreRedistId)"> 37 <PackageGroup Id="$(var.DesktopNetCoreRedistId)">
38 <ExePackage InstallArguments="$(var.DesktopNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DesktopNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DesktopNetCoreRedistLog)" Cache="no"> 38 <ExePackage InstallArguments="$(var.DesktopNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DesktopNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DesktopNetCoreRedistLog)" Cache="remove">
39 <ExePackagePayload Name="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)windowsdesktop-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DesktopNetCoreRedistLink)" Description="Microsoft Windows Desktop Runtime - 3.1.12 (x86)" Hash="C211A7F29D9B6FEEFCF0379B153FFBFB815157D3D494CFD7D0D84D619701EEA284BF12502094BCFF2BB2968213190454E7CE0E865FD623E78C2FCDAEBEF963DA" ProductName="Microsoft Windows Desktop Runtime - 3.1.12 (x86)" Size="48590696" Version="3.1.12.29719" /> 39 <ExePackagePayload Name="!(wix.DesktopNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)windowsdesktop-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DesktopNetCoreRedistLink)" Description="Microsoft Windows Desktop Runtime - 3.1.12 (x86)" Hash="C211A7F29D9B6FEEFCF0379B153FFBFB815157D3D494CFD7D0D84D619701EEA284BF12502094BCFF2BB2968213190454E7CE0E865FD623E78C2FCDAEBEF963DA" ProductName="Microsoft Windows Desktop Runtime - 3.1.12 (x86)" Size="48590696" Version="3.1.12.29719" />
40 </ExePackage> 40 </ExePackage>
41 </PackageGroup> 41 </PackageGroup>
@@ -50,7 +50,7 @@
50 <WixVariable Id="DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" /> 50 <WixVariable Id="DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)RepairArguments" Value="" Overridable="yes" />
51 51
52 <PackageGroup Id="$(var.DotNetCoreRedistId)"> 52 <PackageGroup Id="$(var.DotNetCoreRedistId)">
53 <ExePackage InstallArguments="$(var.DotNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DotNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DotNetCoreRedistLog)" Cache="no"> 53 <ExePackage InstallArguments="$(var.DotNetCoreRedistInstallArguments)" PerMachine="yes" DetectCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)DetectCondition)" InstallCondition="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)InstallCondition)" Id="$(var.DotNetCoreRedistId)" Vital="yes" Permanent="yes" Protocol="burn" LogPathVariable="$(var.DotNetCoreRedistLog)" Cache="remove">
54 <ExePackagePayload Name="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)dotnet-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DotNetCoreRedistLink)" Description="Microsoft .NET Core Runtime - 3.1.12 (x86)" Hash="BA18F9028B19630D91017BEACCD8D79388125C228A83B5A62306108F3BB283617A7ED9B98785BC73192EC00E5D186DA767E940DCAB388699FAF274E437D0C16F" ProductName="Microsoft .NET Core Runtime - 3.1.12 (x86)" Size="23392184" Version="3.1.12.29719" /> 54 <ExePackagePayload Name="!(wix.DotNetCoreRuntime$(var.NetCoreIdVersion)Redist$(var.NetCorePlatform)PackageDirectory)dotnet-runtime-$(var.NetCoreVersion)-win-$(var.NetCorePlatform).exe" DownloadUrl="$(var.DotNetCoreRedistLink)" Description="Microsoft .NET Core Runtime - 3.1.12 (x86)" Hash="BA18F9028B19630D91017BEACCD8D79388125C228A83B5A62306108F3BB283617A7ED9B98785BC73192EC00E5D186DA767E940DCAB388699FAF274E437D0C16F" ProductName="Microsoft .NET Core Runtime - 3.1.12 (x86)" Size="23392184" Version="3.1.12.29719" />
55 </ExePackage> 55 </ExePackage>
56 </PackageGroup> 56 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx452.wxs b/src/ext/NetFx/wixlib/NetFx452.wxs
index 6c55a563..e0b2f0f2 100644
--- a/src/ext/NetFx/wixlib/NetFx452.wxs
+++ b/src/ext/NetFx/wixlib/NetFx452.wxs
@@ -31,7 +31,7 @@
31 <WixVariable Id="NetFx452WebPackageDirectory" Value="redist\" Overridable="yes" /> 31 <WixVariable Id="NetFx452WebPackageDirectory" Value="redist\" Overridable="yes" />
32 32
33 <PackageGroup Id="$(var.NetFx452WebId)"> 33 <PackageGroup Id="$(var.NetFx452WebId)">
34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx452FullWebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx452WebDetectCondition)" InstallCondition="!(wix.NetFx452WebInstallCondition)" Id="$(var.NetFx452WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx452FullWebLog" Cache="no"> 34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx452FullWebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx452WebDetectCondition)" InstallCondition="!(wix.NetFx452WebInstallCondition)" Id="$(var.NetFx452WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx452FullWebLog" Cache="remove">
35 <ExePackagePayload Name="!(wix.NetFx452WebPackageDirectory)NDP452-KB2901954-Web.exe" DownloadUrl="$(var.NetFx452WebLink)" Description="Microsoft .NET Framework 4.5.2 Setup" Hash="90A3A5A57EA8A6508EEE0D129303C7CB012AABF651DD9A6BEFC20DA3BBDB09FC47FD087645051D3D45BFF909DFC6E6039C22C4816FBC793A847E81701248639E" ProductName="Microsoft .NET Framework 4.5.2" Size="1118920" Version="4.5.51209.34209" /> 35 <ExePackagePayload Name="!(wix.NetFx452WebPackageDirectory)NDP452-KB2901954-Web.exe" DownloadUrl="$(var.NetFx452WebLink)" Description="Microsoft .NET Framework 4.5.2 Setup" Hash="90A3A5A57EA8A6508EEE0D129303C7CB012AABF651DD9A6BEFC20DA3BBDB09FC47FD087645051D3D45BFF909DFC6E6039C22C4816FBC793A847E81701248639E" ProductName="Microsoft .NET Framework 4.5.2" Size="1118920" Version="4.5.51209.34209" />
36 </ExePackage> 36 </ExePackage>
37 </PackageGroup> 37 </PackageGroup>
@@ -53,7 +53,7 @@
53 <WixVariable Id="NetFx452RedistPackageDirectory" Value="redist\" Overridable="yes" /> 53 <WixVariable Id="NetFx452RedistPackageDirectory" Value="redist\" Overridable="yes" />
54 54
55 <PackageGroup Id="$(var.NetFx452RedistId)"> 55 <PackageGroup Id="$(var.NetFx452RedistId)">
56 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx452FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx452RedistDetectCondition)" InstallCondition="!(wix.NetFx452RedistInstallCondition)" Id="$(var.NetFx452RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx452FullLog" Cache="no"> 56 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx452FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx452RedistDetectCondition)" InstallCondition="!(wix.NetFx452RedistInstallCondition)" Id="$(var.NetFx452RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx452FullLog" Cache="remove">
57 <ExePackagePayload Name="!(wix.NetFx452RedistPackageDirectory)NDP452-KB2901907-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx452RedistLink)" Description="Microsoft .NET Framework 4.5.2 Setup" Hash="033D457229C4FE6EEA7B1E42A3A39DD4CF6A054C5E996CE036942DD2FE9623FD3A0634BE5DCB88506C1C61BF9FF6076F27B4ECEC38F8CF85603AF018111E584D" ProductName="Microsoft .NET Framework 4.5.2" Size="69999448" Version="4.5.51209.34209" /> 57 <ExePackagePayload Name="!(wix.NetFx452RedistPackageDirectory)NDP452-KB2901907-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx452RedistLink)" Description="Microsoft .NET Framework 4.5.2 Setup" Hash="033D457229C4FE6EEA7B1E42A3A39DD4CF6A054C5E996CE036942DD2FE9623FD3A0634BE5DCB88506C1C61BF9FF6076F27B4ECEC38F8CF85603AF018111E584D" ProductName="Microsoft .NET Framework 4.5.2" Size="69999448" Version="4.5.51209.34209" />
58 </ExePackage> 58 </ExePackage>
59 </PackageGroup> 59 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx46.wxs b/src/ext/NetFx/wixlib/NetFx46.wxs
index 99560a98..535747e0 100644
--- a/src/ext/NetFx/wixlib/NetFx46.wxs
+++ b/src/ext/NetFx/wixlib/NetFx46.wxs
@@ -32,7 +32,7 @@
32 <WixVariable Id="NetFx46WebPackageDirectory" Value="redist\" Overridable="yes" /> 32 <WixVariable Id="NetFx46WebPackageDirectory" Value="redist\" Overridable="yes" />
33 33
34 <PackageGroup Id="$(var.NetFx46WebId)"> 34 <PackageGroup Id="$(var.NetFx46WebId)">
35 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx46FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx46WebDetectCondition)" InstallCondition="!(wix.NetFx46WebInstallCondition)" Id="$(var.NetFx46WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx46FullLog" Cache="no"> 35 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx46FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx46WebDetectCondition)" InstallCondition="!(wix.NetFx46WebInstallCondition)" Id="$(var.NetFx46WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx46FullLog" Cache="remove">
36 <ExePackagePayload Name="!(wix.NetFx46WebPackageDirectory)NDP46-KB3045560-Web.exe" DownloadUrl="$(var.NetFx46WebLink)" Description="Microsoft .NET Framework 4.6 Setup" Hash="CAA5F4D4DB0C9DF34252FCB74CF7762214F69D2419865EBC1E6717E6B1348E59A7599A8DECAAB5CEE6974E59D1AE5A749F8C4EC07C8E4C80C90E77B996B3B205" ProductName="Microsoft .NET Framework 4.6" Size="1497400" Version="4.6.81.0" /> 36 <ExePackagePayload Name="!(wix.NetFx46WebPackageDirectory)NDP46-KB3045560-Web.exe" DownloadUrl="$(var.NetFx46WebLink)" Description="Microsoft .NET Framework 4.6 Setup" Hash="CAA5F4D4DB0C9DF34252FCB74CF7762214F69D2419865EBC1E6717E6B1348E59A7599A8DECAAB5CEE6974E59D1AE5A749F8C4EC07C8E4C80C90E77B996B3B205" ProductName="Microsoft .NET Framework 4.6" Size="1497400" Version="4.6.81.0" />
37 </ExePackage> 37 </ExePackage>
38 </PackageGroup> 38 </PackageGroup>
@@ -54,7 +54,7 @@
54 <WixVariable Id="NetFx46RedistPackageDirectory" Value="redist\" Overridable="yes" /> 54 <WixVariable Id="NetFx46RedistPackageDirectory" Value="redist\" Overridable="yes" />
55 55
56 <PackageGroup Id="$(var.NetFx46RedistId)"> 56 <PackageGroup Id="$(var.NetFx46RedistId)">
57 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx46FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx46RedistDetectCondition)" InstallCondition="!(wix.NetFx46RedistInstallCondition)" Id="$(var.NetFx46RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx46FullLog" Cache="no"> 57 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx46FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx46RedistDetectCondition)" InstallCondition="!(wix.NetFx46RedistInstallCondition)" Id="$(var.NetFx46RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx46FullLog" Cache="remove">
58 <ExePackagePayload Name="!(wix.NetFx46RedistPackageDirectory)NDP46-KB3045557-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx46RedistLink)" Description="Microsoft .NET Framework 4.6 Setup" Hash="C6FC54F648F822515ADACB4C27E0A6DBD6A3EAF2BA3F069C0002750894ECC453EBED8BC8D4FF2AFD73C7B3445C1DA18D43FE361EA5195AE8522249DF36B84B7E" ProductName="Microsoft .NET Framework 4.6" Size="65444688" Version="4.6.81.0" /> 58 <ExePackagePayload Name="!(wix.NetFx46RedistPackageDirectory)NDP46-KB3045557-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx46RedistLink)" Description="Microsoft .NET Framework 4.6 Setup" Hash="C6FC54F648F822515ADACB4C27E0A6DBD6A3EAF2BA3F069C0002750894ECC453EBED8BC8D4FF2AFD73C7B3445C1DA18D43FE361EA5195AE8522249DF36B84B7E" ProductName="Microsoft .NET Framework 4.6" Size="65444688" Version="4.6.81.0" />
59 </ExePackage> 59 </ExePackage>
60 </PackageGroup> 60 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx461.wxs b/src/ext/NetFx/wixlib/NetFx461.wxs
index d47e75bd..e89bf7be 100644
--- a/src/ext/NetFx/wixlib/NetFx461.wxs
+++ b/src/ext/NetFx/wixlib/NetFx461.wxs
@@ -31,7 +31,7 @@
31 <WixVariable Id="NetFx461WebPackageDirectory" Value="redist\" Overridable="yes" /> 31 <WixVariable Id="NetFx461WebPackageDirectory" Value="redist\" Overridable="yes" />
32 32
33 <PackageGroup Id="$(var.NetFx461WebId)"> 33 <PackageGroup Id="$(var.NetFx461WebId)">
34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx461FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx461WebDetectCondition)" InstallCondition="!(wix.NetFx461WebInstallCondition)" Id="$(var.NetFx461WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx461FullLog" Cache="no"> 34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx461FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx461WebDetectCondition)" InstallCondition="!(wix.NetFx461WebInstallCondition)" Id="$(var.NetFx461WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx461FullLog" Cache="remove">
35 <ExePackagePayload Name="!(wix.NetFx461WebPackageDirectory)NDP461-KB3102438-Web.exe" DownloadUrl="$(var.NetFx461WebLink)" Description="Microsoft .NET Framework 4.6.1 Setup" Hash="97C4DD638E2E0324D60BDD1D7BE85603EDBF969898469A524FB271EBA5E22B78CA67DB1F568F5C45393381F1E76408C366AD4A68A7BB00E23D1FB820E67DE99E" ProductName="Microsoft .NET Framework 4.6.1" Size="1424328" Version="4.6.1055.0" /> 35 <ExePackagePayload Name="!(wix.NetFx461WebPackageDirectory)NDP461-KB3102438-Web.exe" DownloadUrl="$(var.NetFx461WebLink)" Description="Microsoft .NET Framework 4.6.1 Setup" Hash="97C4DD638E2E0324D60BDD1D7BE85603EDBF969898469A524FB271EBA5E22B78CA67DB1F568F5C45393381F1E76408C366AD4A68A7BB00E23D1FB820E67DE99E" ProductName="Microsoft .NET Framework 4.6.1" Size="1424328" Version="4.6.1055.0" />
36 </ExePackage> 36 </ExePackage>
37 </PackageGroup> 37 </PackageGroup>
@@ -53,7 +53,7 @@
53 <WixVariable Id="NetFx461RedistPackageDirectory" Value="redist\" Overridable="yes" /> 53 <WixVariable Id="NetFx461RedistPackageDirectory" Value="redist\" Overridable="yes" />
54 54
55 <PackageGroup Id="$(var.NetFx461RedistId)"> 55 <PackageGroup Id="$(var.NetFx461RedistId)">
56 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx461FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx461RedistDetectCondition)" InstallCondition="!(wix.NetFx461RedistInstallCondition)" Id="$(var.NetFx461RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx461FullLog" Cache="no"> 56 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx461FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx461RedistDetectCondition)" InstallCondition="!(wix.NetFx461RedistInstallCondition)" Id="$(var.NetFx461RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx461FullLog" Cache="remove">
57 <ExePackagePayload Name="!(wix.NetFx461RedistPackageDirectory)NDP461-KB3102436-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx461RedistLink)" Description="Microsoft .NET Framework 4.6.1 Setup" Hash="43BEF5EB278CF0954EAE1A6FEEC5A9852B932270508DD10647B9EA32DFD3832ECB58172B28707216709705BF0013FCEBB0B39DB31E38786FC2DAE219622EA00F" ProductName="Microsoft .NET Framework 4.6.1" Size="67681000" Version="4.6.1055.0" /> 57 <ExePackagePayload Name="!(wix.NetFx461RedistPackageDirectory)NDP461-KB3102436-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx461RedistLink)" Description="Microsoft .NET Framework 4.6.1 Setup" Hash="43BEF5EB278CF0954EAE1A6FEEC5A9852B932270508DD10647B9EA32DFD3832ECB58172B28707216709705BF0013FCEBB0B39DB31E38786FC2DAE219622EA00F" ProductName="Microsoft .NET Framework 4.6.1" Size="67681000" Version="4.6.1055.0" />
58 </ExePackage> 58 </ExePackage>
59 </PackageGroup> 59 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx462.wxs b/src/ext/NetFx/wixlib/NetFx462.wxs
index b5e4b533..9ae5ad31 100644
--- a/src/ext/NetFx/wixlib/NetFx462.wxs
+++ b/src/ext/NetFx/wixlib/NetFx462.wxs
@@ -31,7 +31,7 @@
31 <WixVariable Id="NetFx462WebPackageDirectory" Value="redist\" Overridable="yes" /> 31 <WixVariable Id="NetFx462WebPackageDirectory" Value="redist\" Overridable="yes" />
32 32
33 <PackageGroup Id="$(var.NetFx462WebId)"> 33 <PackageGroup Id="$(var.NetFx462WebId)">
34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx462FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx462WebDetectCondition)" InstallCondition="!(wix.NetFx462WebInstallCondition)" Id="$(var.NetFx462WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx462FullLog" Cache="no"> 34 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx462FullLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx462WebDetectCondition)" InstallCondition="!(wix.NetFx462WebInstallCondition)" Id="$(var.NetFx462WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx462FullLog" Cache="remove">
35 <ExePackagePayload Name="!(wix.NetFx462WebPackageDirectory)NDP462-KB3151802-Web.exe" DownloadUrl="$(var.NetFx462WebLink)" Description="Microsoft .NET Framework 4.6.2 Setup" Hash="72CC8904EA9AC4248874FD888E2C63737DFFF920E4002EB1426318EFD2650D1D5055DFC80C1F398278F7246A3827FC0ED3C044471C67A40CDE66D3796F854DCE" ProductName="Microsoft .NET Framework 4.6.2" Size="1408232" Version="4.6.1590.0" /> 35 <ExePackagePayload Name="!(wix.NetFx462WebPackageDirectory)NDP462-KB3151802-Web.exe" DownloadUrl="$(var.NetFx462WebLink)" Description="Microsoft .NET Framework 4.6.2 Setup" Hash="72CC8904EA9AC4248874FD888E2C63737DFFF920E4002EB1426318EFD2650D1D5055DFC80C1F398278F7246A3827FC0ED3C044471C67A40CDE66D3796F854DCE" ProductName="Microsoft .NET Framework 4.6.2" Size="1408232" Version="4.6.1590.0" />
36 </ExePackage> 36 </ExePackage>
37 </PackageGroup> 37 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx472.wxs b/src/ext/NetFx/wixlib/NetFx472.wxs
index c54e7957..3a8009e5 100644
--- a/src/ext/NetFx/wixlib/NetFx472.wxs
+++ b/src/ext/NetFx/wixlib/NetFx472.wxs
@@ -29,7 +29,7 @@
29 <WixVariable Id="NetFx472WebPackageDirectory" Value="redist\" Overridable="yes" /> 29 <WixVariable Id="NetFx472WebPackageDirectory" Value="redist\" Overridable="yes" />
30 30
31 <PackageGroup Id="$(var.NetFx472WebId)"> 31 <PackageGroup Id="$(var.NetFx472WebId)">
32 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx472WebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx472WebDetectCondition)" InstallCondition="!(wix.NetFx472WebInstallCondition)" Id="$(var.NetFx472WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx472WebLog" Cache="no"> 32 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx472WebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx472WebDetectCondition)" InstallCondition="!(wix.NetFx472WebInstallCondition)" Id="$(var.NetFx472WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx472WebLog" Cache="remove">
33 <ExePackagePayload Name="!(wix.NetFx472WebPackageDirectory)NDP472-KB4054531-Web.exe" DownloadUrl="$(var.NetFx472WebLink)" Description="Microsoft .NET Framework 4.7.2 Setup" Hash="213CDEE35D320FE126CB64FE59963DB355062A14592E0B2FC4D45C2EDEF5F6A91305D0674D27152869202E3440090DFC207A0C5EB14D812F61E437907A81887E" ProductName="Microsoft .NET Framework 4.7.2" Size="1399888" Version="4.7.3081.0" /> 33 <ExePackagePayload Name="!(wix.NetFx472WebPackageDirectory)NDP472-KB4054531-Web.exe" DownloadUrl="$(var.NetFx472WebLink)" Description="Microsoft .NET Framework 4.7.2 Setup" Hash="213CDEE35D320FE126CB64FE59963DB355062A14592E0B2FC4D45C2EDEF5F6A91305D0674D27152869202E3440090DFC207A0C5EB14D812F61E437907A81887E" ProductName="Microsoft .NET Framework 4.7.2" Size="1399888" Version="4.7.3081.0" />
34 </ExePackage> 34 </ExePackage>
35 </PackageGroup> 35 </PackageGroup>
@@ -51,7 +51,7 @@
51 <WixVariable Id="NetFx472RedistPackageDirectory" Value="redist\" Overridable="yes" /> 51 <WixVariable Id="NetFx472RedistPackageDirectory" Value="redist\" Overridable="yes" />
52 52
53 <PackageGroup Id="$(var.NetFx472RedistId)"> 53 <PackageGroup Id="$(var.NetFx472RedistId)">
54 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx472RedistLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx472RedistDetectCondition)" InstallCondition="!(wix.NetFx472RedistInstallCondition)" Id="$(var.NetFx472RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx472RedistLog" Cache="no"> 54 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx472RedistLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx472RedistDetectCondition)" InstallCondition="!(wix.NetFx472RedistInstallCondition)" Id="$(var.NetFx472RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx472RedistLog" Cache="remove">
55 <ExePackagePayload Name="!(wix.NetFx472RedistPackageDirectory)NDP472-KB4054530-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx472RedistLink)" Description="Microsoft .NET Framework 4.7.2 Setup" Hash="F4EA32D8189DD269FF02D68B39D7DE866AE5F46EEA5A71BF8F4715FB0E4F8B7AC64B274DFA7BFF69B52C719E65256906C8D92FDD355F52C977175AE3E1919098" ProductName="Microsoft .NET Framework 4.7.2" Size="83940592" Version="4.7.3081.0" /> 55 <ExePackagePayload Name="!(wix.NetFx472RedistPackageDirectory)NDP472-KB4054530-x86-x64-AllOS-ENU.exe" DownloadUrl="$(var.NetFx472RedistLink)" Description="Microsoft .NET Framework 4.7.2 Setup" Hash="F4EA32D8189DD269FF02D68B39D7DE866AE5F46EEA5A71BF8F4715FB0E4F8B7AC64B274DFA7BFF69B52C719E65256906C8D92FDD355F52C977175AE3E1919098" ProductName="Microsoft .NET Framework 4.7.2" Size="83940592" Version="4.7.3081.0" />
56 </ExePackage> 56 </ExePackage>
57 </PackageGroup> 57 </PackageGroup>
diff --git a/src/ext/NetFx/wixlib/NetFx48.wxs b/src/ext/NetFx/wixlib/NetFx48.wxs
index be307219..ef8f2f54 100644
--- a/src/ext/NetFx/wixlib/NetFx48.wxs
+++ b/src/ext/NetFx/wixlib/NetFx48.wxs
@@ -29,7 +29,7 @@
29 <WixVariable Id="NetFx48WebPackageDirectory" Value="redist\" Overridable="yes" /> 29 <WixVariable Id="NetFx48WebPackageDirectory" Value="redist\" Overridable="yes" />
30 30
31 <PackageGroup Id="$(var.NetFx48WebId)"> 31 <PackageGroup Id="$(var.NetFx48WebId)">
32 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx48WebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx48WebDetectCondition)" InstallCondition="!(wix.NetFx48WebInstallCondition)" Id="$(var.NetFx48WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx48WebLog" Cache="no"> 32 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx48WebLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx48WebDetectCondition)" InstallCondition="!(wix.NetFx48WebInstallCondition)" Id="$(var.NetFx48WebId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx48WebLog" Cache="remove">
33 <ExePackagePayload Name="!(wix.NetFx48WebPackageDirectory)ndp48-web.exe" DownloadUrl="$(var.NetFx48WebLink)" Description="Microsoft .NET Framework 4.8 Setup" Hash="642721C60D52051C7F3434D8710FE3406A7CFE10B2B39E90EA847719ED1697D7C614F2DF44AD50412B1DF8C98DD78FDC57CA1D047D28C81AC158092E5FB18040" ProductName="Microsoft .NET Framework 4.8" Size="1439328" Version="4.8.4115.0" /> 33 <ExePackagePayload Name="!(wix.NetFx48WebPackageDirectory)ndp48-web.exe" DownloadUrl="$(var.NetFx48WebLink)" Description="Microsoft .NET Framework 4.8 Setup" Hash="642721C60D52051C7F3434D8710FE3406A7CFE10B2B39E90EA847719ED1697D7C614F2DF44AD50412B1DF8C98DD78FDC57CA1D047D28C81AC158092E5FB18040" ProductName="Microsoft .NET Framework 4.8" Size="1439328" Version="4.8.4115.0" />
34 </ExePackage> 34 </ExePackage>
35 </PackageGroup> 35 </PackageGroup>
@@ -51,7 +51,7 @@
51 <WixVariable Id="NetFx48RedistPackageDirectory" Value="redist\" Overridable="yes" /> 51 <WixVariable Id="NetFx48RedistPackageDirectory" Value="redist\" Overridable="yes" />
52 52
53 <PackageGroup Id="$(var.NetFx48RedistId)"> 53 <PackageGroup Id="$(var.NetFx48RedistId)">
54 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx48RedistLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx48RedistDetectCondition)" InstallCondition="!(wix.NetFx48RedistInstallCondition)" Id="$(var.NetFx48RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx48RedistLog" Cache="no"> 54 <ExePackage InstallArguments="/q /norestart /log &quot;[NetFx48RedistLog].html&quot;" PerMachine="yes" DetectCondition="!(wix.NetFx48RedistDetectCondition)" InstallCondition="!(wix.NetFx48RedistInstallCondition)" Id="$(var.NetFx48RedistId)" Vital="yes" Permanent="yes" Protocol="netfx4" LogPathVariable="NetFx48RedistLog" Cache="remove">
55 <ExePackagePayload Name="!(wix.NetFx48RedistPackageDirectory)ndp48-x86-x64-allos-enu.exe" DownloadUrl="$(var.NetFx48RedistLink)" Description="Microsoft .NET Framework 4.8 Setup" Hash="DE7FD1B245BAAAC3A2BA1C2C650492AB71EB689902E281DDA02B069A441BAF9B1CF067D596C2E67C27EB58C341F572D8E7D481EC5D6E3A4CFB8D0C9AA7B55181" ProductName="Microsoft .NET Framework 4.8" Size="121319368" Version="4.8.4115.0" /> 55 <ExePackagePayload Name="!(wix.NetFx48RedistPackageDirectory)ndp48-x86-x64-allos-enu.exe" DownloadUrl="$(var.NetFx48RedistLink)" Description="Microsoft .NET Framework 4.8 Setup" Hash="DE7FD1B245BAAAC3A2BA1C2C650492AB71EB689902E281DDA02B069A441BAF9B1CF067D596C2E67C27EB58C341F572D8E7D481EC5D6E3A4CFB8D0C9AA7B55181" ProductName="Microsoft .NET Framework 4.8" Size="121319368" Version="4.8.4115.0" />
56 </ExePackage> 56 </ExePackage>
57 </PackageGroup> 57 </PackageGroup>
diff --git a/src/test/burn/TestData/DependencyTests/BundleAv1/BundleAv1.wxs b/src/test/burn/TestData/DependencyTests/BundleAv1/BundleAv1.wxs
index 9218e823..3a15fdbb 100644
--- a/src/test/burn/TestData/DependencyTests/BundleAv1/BundleAv1.wxs
+++ b/src/test/burn/TestData/DependencyTests/BundleAv1/BundleAv1.wxs
@@ -8,7 +8,7 @@
8 8
9 <PackageGroup Id="BundlePackages"> 9 <PackageGroup Id="BundlePackages">
10 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" /> 10 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" />
11 <ExePackage Id="ExeA" Cache="no" PerMachine="yes" 11 <ExePackage Id="ExeA" Cache="remove" PerMachine="yes"
12 DetectCondition="ExeA_Version AND ExeA_Version &gt;= v$(var.Version)" 12 DetectCondition="ExeA_Version AND ExeA_Version &gt;= v$(var.Version)"
13 InstallArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;" 13 InstallArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;"
14 RepairArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;" 14 RepairArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;"
diff --git a/src/test/burn/TestData/DependencyTests/BundleAv1_0_1/BundleAv1_0_1.wxs b/src/test/burn/TestData/DependencyTests/BundleAv1_0_1/BundleAv1_0_1.wxs
index 1590574f..3a9fd61d 100644
--- a/src/test/burn/TestData/DependencyTests/BundleAv1_0_1/BundleAv1_0_1.wxs
+++ b/src/test/burn/TestData/DependencyTests/BundleAv1_0_1/BundleAv1_0_1.wxs
@@ -8,7 +8,7 @@
8 8
9 <PackageGroup Id="BundlePackages"> 9 <PackageGroup Id="BundlePackages">
10 <MsiPackage Id="PackageA" Name="PackageAv1.msi" SourceFile="$(var.PackageAv1_0_1.TargetPath)" /> 10 <MsiPackage Id="PackageA" Name="PackageAv1.msi" SourceFile="$(var.PackageAv1_0_1.TargetPath)" />
11 <ExePackage Id="ExeA" Cache="no" PerMachine="yes" 11 <ExePackage Id="ExeA" Cache="remove" PerMachine="yes"
12 DetectCondition="ExeA_Version AND ExeA_Version &gt;= v$(var.Version)" 12 DetectCondition="ExeA_Version AND ExeA_Version &gt;= v$(var.Version)"
13 InstallArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;" 13 InstallArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;"
14 RepairArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;" 14 RepairArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;"
diff --git a/src/test/burn/TestData/DependencyTests/BundleB/BundleB.wxs b/src/test/burn/TestData/DependencyTests/BundleB/BundleB.wxs
index 026100fa..670a812c 100644
--- a/src/test/burn/TestData/DependencyTests/BundleB/BundleB.wxs
+++ b/src/test/burn/TestData/DependencyTests/BundleB/BundleB.wxs
@@ -9,7 +9,7 @@
9 <PackageGroup Id="BundlePackages"> 9 <PackageGroup Id="BundlePackages">
10 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" /> 10 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" />
11 <MsiPackage Id="PackageB" SourceFile="$(var.PackageB.TargetPath)" /> 11 <MsiPackage Id="PackageB" SourceFile="$(var.PackageB.TargetPath)" />
12 <ExePackage Id="ExeA" Cache="no" PerMachine="yes" 12 <ExePackage Id="ExeA" Cache="remove" PerMachine="yes"
13 DetectCondition="ExeA_Version AND ExeA_Version &gt;= v$(var.Version)" 13 DetectCondition="ExeA_Version AND ExeA_Version &gt;= v$(var.Version)"
14 InstallArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;" 14 InstallArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;"
15 RepairArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;" 15 RepairArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;"
diff --git a/src/test/burn/TestData/DependencyTests/BundleD/BundleD.wxs b/src/test/burn/TestData/DependencyTests/BundleD/BundleD.wxs
index 8ee40558..f371f674 100644
--- a/src/test/burn/TestData/DependencyTests/BundleD/BundleD.wxs
+++ b/src/test/burn/TestData/DependencyTests/BundleD/BundleD.wxs
@@ -4,7 +4,7 @@
4 <Fragment> 4 <Fragment>
5 <PackageGroup Id="BundlePackages"> 5 <PackageGroup Id="BundlePackages">
6 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" /> 6 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" />
7 <ExePackage Id="TestExe" Cache="no" PerMachine="yes" Permanent="yes" InstallArguments="/ec 1603"> 7 <ExePackage Id="TestExe" Cache="remove" PerMachine="yes" Permanent="yes" InstallArguments="/ec 1603">
8 <PayloadGroupRef Id="TestExePayloads" /> 8 <PayloadGroupRef Id="TestExePayloads" />
9 </ExePackage> 9 </ExePackage>
10 </PackageGroup> 10 </PackageGroup>
diff --git a/src/test/burn/TestData/DependencyTests/BundleE/BundleE.wxs b/src/test/burn/TestData/DependencyTests/BundleE/BundleE.wxs
index 204e66ab..03b3538b 100644
--- a/src/test/burn/TestData/DependencyTests/BundleE/BundleE.wxs
+++ b/src/test/burn/TestData/DependencyTests/BundleE/BundleE.wxs
@@ -9,7 +9,7 @@
9 <PackageGroup Id="BundlePackages"> 9 <PackageGroup Id="BundlePackages">
10 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" /> 10 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" />
11 <MsiPackage Id="PackageC" SourceFile="$(var.PackageC.TargetPath)" Vital="no" /> 11 <MsiPackage Id="PackageC" SourceFile="$(var.PackageC.TargetPath)" Vital="no" />
12 <ExePackage Id="ExeA" Cache="no" Vital="no" PerMachine="yes" InstallArguments="/ec 1603" 12 <ExePackage Id="ExeA" Cache="remove" Vital="no" PerMachine="yes" InstallArguments="/ec 1603"
13 DetectCondition="ExeA_Version AND ExeA_Version &gt;= v$(var.Version)"> 13 DetectCondition="ExeA_Version AND ExeA_Version &gt;= v$(var.Version)">
14 <Provides Key="$(var.TestGroupName)_ExeA,v1.0" Version="$(var.Version)" /> 14 <Provides Key="$(var.TestGroupName)_ExeA,v1.0" Version="$(var.Version)" />
15 <PayloadGroupRef Id="TestExePayloads" /> 15 <PayloadGroupRef Id="TestExePayloads" />
diff --git a/src/test/burn/TestData/DependencyTests/BundleF_AddOnA/BundleF_AddOn.wxs b/src/test/burn/TestData/DependencyTests/BundleF_AddOnA/BundleF_AddOn.wxs
index c8ca4a3f..30fba657 100644
--- a/src/test/burn/TestData/DependencyTests/BundleF_AddOnA/BundleF_AddOn.wxs
+++ b/src/test/burn/TestData/DependencyTests/BundleF_AddOnA/BundleF_AddOn.wxs
@@ -9,7 +9,7 @@
9 9
10 <PackageGroup Id="BundlePackages"> 10 <PackageGroup Id="BundlePackages">
11 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" /> 11 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" />
12 <ExePackage Id="ExeA" Cache="no" PerMachine="yes" 12 <ExePackage Id="ExeA" Cache="remove" PerMachine="yes"
13 DetectCondition="ExeA_Version AND ExeA_Version &gt;= v$(var.Version)" 13 DetectCondition="ExeA_Version AND ExeA_Version &gt;= v$(var.Version)"
14 InstallArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;" 14 InstallArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;"
15 RepairArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;" 15 RepairArguments="/regw &quot;HKLM\$(var.TestExeRegistryKey),Version,String,$(var.Version)&quot;"
diff --git a/src/test/burn/TestData/PrereqBaTests/BundleA/BundleA.wxs b/src/test/burn/TestData/PrereqBaTests/BundleA/BundleA.wxs
index c903988b..455ea1e1 100644
--- a/src/test/burn/TestData/PrereqBaTests/BundleA/BundleA.wxs
+++ b/src/test/burn/TestData/PrereqBaTests/BundleA/BundleA.wxs
@@ -16,7 +16,7 @@
16 <Fragment> 16 <Fragment>
17 <PackageGroup Id="BundlePackages"> 17 <PackageGroup Id="BundlePackages">
18 <MsiPackage Id="PackageA" SourceFile="$(var.PackageA.TargetPath)" bal:PrereqPackage="yes" Permanent="yes" /> 18 <MsiPackage Id="PackageA" SourceFile="$(var.PackageA.TargetPath)" bal:PrereqPackage="yes" Permanent="yes" />
19 <MsiPackage Id="PackageF" SourceFile="$(var.PackageF.TargetPath)" Cache="always" /> 19 <MsiPackage Id="PackageF" SourceFile="$(var.PackageF.TargetPath)" Cache="force" />
20 </PackageGroup> 20 </PackageGroup>
21 </Fragment> 21 </Fragment>
22</Wix> 22</Wix>
diff --git a/src/wix/WixToolset.Converters/WixConverter.cs b/src/wix/WixToolset.Converters/WixConverter.cs
index e42d0605..a343f35a 100644
--- a/src/wix/WixToolset.Converters/WixConverter.cs
+++ b/src/wix/WixToolset.Converters/WixConverter.cs
@@ -224,7 +224,7 @@ namespace WixToolset.Converters
224 { WixConverter.ModuleElementName, this.ConvertModuleElement }, 224 { WixConverter.ModuleElementName, this.ConvertModuleElement },
225 { WixConverter.MsiPackageElementName, this.ConvertWindowsInstallerPackageElement }, 225 { WixConverter.MsiPackageElementName, this.ConvertWindowsInstallerPackageElement },
226 { WixConverter.MspPackageElementName, this.ConvertWindowsInstallerPackageElement }, 226 { WixConverter.MspPackageElementName, this.ConvertWindowsInstallerPackageElement },
227 { WixConverter.MsuPackageElementName, this.ConvertSuppressSignatureValidation }, 227 { WixConverter.MsuPackageElementName, this.ConvertMsuPackageElement },
228 { WixConverter.OldProvidesElementName, this.ConvertProvidesElement }, 228 { WixConverter.OldProvidesElementName, this.ConvertProvidesElement },
229 { WixConverter.OldRequiresElementName, this.ConvertRequiresElement }, 229 { WixConverter.OldRequiresElementName, this.ConvertRequiresElement },
230 { WixConverter.OldRequiresRefElementName, this.ConvertRequiresRefElement }, 230 { WixConverter.OldRequiresRefElementName, this.ConvertRequiresRefElement },
@@ -1114,6 +1114,8 @@ namespace WixToolset.Converters
1114 { 1114 {
1115 this.ConvertSuppressSignatureValidation(element); 1115 this.ConvertSuppressSignatureValidation(element);
1116 1116
1117 this.UpdatePackageCacheAttribute(element);
1118
1117 foreach (var attributeName in new[] { "InstallCommand", "RepairCommand", "UninstallCommand" }) 1119 foreach (var attributeName in new[] { "InstallCommand", "RepairCommand", "UninstallCommand" })
1118 { 1120 {
1119 var newName = attributeName.Replace("Command", "Arguments"); 1121 var newName = attributeName.Replace("Command", "Arguments");
@@ -1180,6 +1182,13 @@ namespace WixToolset.Converters
1180 } 1182 }
1181 } 1183 }
1182 1184
1185 private void ConvertMsuPackageElement(XElement element)
1186 {
1187 this.ConvertSuppressSignatureValidation(element);
1188
1189 this.UpdatePackageCacheAttribute(element);
1190 }
1191
1183 private void ConvertProductElement(XElement element) 1192 private void ConvertProductElement(XElement element)
1184 { 1193 {
1185 var id = element.Attribute("Id"); 1194 var id = element.Attribute("Id");
@@ -1589,6 +1598,8 @@ namespace WixToolset.Converters
1589 { 1598 {
1590 this.ConvertSuppressSignatureValidation(element); 1599 this.ConvertSuppressSignatureValidation(element);
1591 1600
1601 this.UpdatePackageCacheAttribute(element);
1602
1592 if (null != element.Attribute("DisplayInternalUI")) 1603 if (null != element.Attribute("DisplayInternalUI"))
1593 { 1604 {
1594 this.OnError(ConverterTestType.DisplayInternalUiNotConvertable, element, "The DisplayInternalUI functionality has fundamentally changed and requires BootstrapperApplication support."); 1605 this.OnError(ConverterTestType.DisplayInternalUiNotConvertable, element, "The DisplayInternalUI functionality has fundamentally changed and requires BootstrapperApplication support.");
@@ -1792,6 +1803,32 @@ namespace WixToolset.Converters
1792 } 1803 }
1793 } 1804 }
1794 1805
1806 private void UpdatePackageCacheAttribute(XElement element)
1807 {
1808 var cacheAttribute = element.Attribute("Cache");
1809 var cacheValue = cacheAttribute?.Value;
1810 string replacement = null;
1811
1812 switch (cacheValue)
1813 {
1814 case "yes":
1815 replacement = "keep";
1816 break;
1817 case "no":
1818 replacement = "remove";
1819 break;
1820 case "always":
1821 replacement = "force";
1822 break;
1823 }
1824
1825 if (!String.IsNullOrEmpty(replacement) &&
1826 this.OnError(ConverterTestType.BundlePackageCacheAttributeValueObsolete, element, "The chain package element 'Cache' attribute contains obsolete '{0}' value. The value should be '{1}' instead.", cacheValue, replacement))
1827 {
1828 cacheAttribute.SetValue(replacement);
1829 }
1830 }
1831
1795 private string UpdateWin64ValueToBitnessValue(XAttribute xWin64Attribute) 1832 private string UpdateWin64ValueToBitnessValue(XAttribute xWin64Attribute)
1796 { 1833 {
1797 var value = xWin64Attribute.Value ?? String.Empty; 1834 var value = xWin64Attribute.Value ?? String.Empty;
@@ -2430,6 +2467,11 @@ namespace WixToolset.Converters
2430 /// Naked custom action and property references replaced with WixUtilExtension elements. 2467 /// Naked custom action and property references replaced with WixUtilExtension elements.
2431 /// </summary> 2468 /// </summary>
2432 UtilReferencesReplaced, 2469 UtilReferencesReplaced,
2470
2471 /// <summary>
2472 /// Cache attribute value updated.
2473 /// </summary>
2474 BundlePackageCacheAttributeValueObsolete,
2433 } 2475 }
2434 } 2476 }
2435} 2477}
diff --git a/src/wix/WixToolset.Core.Burn/Bundles/CreateBootstrapperApplicationManifestCommand.cs b/src/wix/WixToolset.Core.Burn/Bundles/CreateBootstrapperApplicationManifestCommand.cs
index a0ee606d..04b6b89b 100644
--- a/src/wix/WixToolset.Core.Burn/Bundles/CreateBootstrapperApplicationManifestCommand.cs
+++ b/src/wix/WixToolset.Core.Burn/Bundles/CreateBootstrapperApplicationManifestCommand.cs
@@ -166,13 +166,13 @@ namespace WixToolset.Core.Burn.Bundles
166 166
167 switch (package.PackageSymbol.Cache) 167 switch (package.PackageSymbol.Cache)
168 { 168 {
169 case YesNoAlwaysType.No: 169 case BundleCacheType.Remove:
170 writer.WriteAttributeString("Cache", "remove"); 170 writer.WriteAttributeString("Cache", "remove");
171 break; 171 break;
172 case YesNoAlwaysType.Yes: 172 case BundleCacheType.Keep:
173 writer.WriteAttributeString("Cache", "keep"); 173 writer.WriteAttributeString("Cache", "keep");
174 break; 174 break;
175 case YesNoAlwaysType.Always: 175 case BundleCacheType.Force:
176 writer.WriteAttributeString("Cache", "force"); 176 writer.WriteAttributeString("Cache", "force");
177 break; 177 break;
178 } 178 }
diff --git a/src/wix/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs b/src/wix/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs
index 5655d23d..e95fee54 100644
--- a/src/wix/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs
+++ b/src/wix/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs
@@ -331,13 +331,13 @@ namespace WixToolset.Core.Burn.Bundles
331 331
332 switch (package.PackageSymbol.Cache) 332 switch (package.PackageSymbol.Cache)
333 { 333 {
334 case YesNoAlwaysType.No: 334 case BundleCacheType.Remove:
335 writer.WriteAttributeString("Cache", "remove"); 335 writer.WriteAttributeString("Cache", "remove");
336 break; 336 break;
337 case YesNoAlwaysType.Yes: 337 case BundleCacheType.Keep:
338 writer.WriteAttributeString("Cache", "keep"); 338 writer.WriteAttributeString("Cache", "keep");
339 break; 339 break;
340 case YesNoAlwaysType.Always: 340 case BundleCacheType.Force:
341 writer.WriteAttributeString("Cache", "force"); 341 writer.WriteAttributeString("Cache", "force");
342 break; 342 break;
343 } 343 }
diff --git a/src/wix/WixToolset.Core/Compiler_Bundle.cs b/src/wix/WixToolset.Core/Compiler_Bundle.cs
index 6d2e75f7..1ca3fb00 100644
--- a/src/wix/WixToolset.Core/Compiler_Bundle.cs
+++ b/src/wix/WixToolset.Core/Compiler_Bundle.cs
@@ -1967,7 +1967,7 @@ namespace WixToolset.Core
1967 }; 1967 };
1968 string after = null; 1968 string after = null;
1969 string installCondition = null; 1969 string installCondition = null;
1970 var cache = YesNoAlwaysType.Yes; // the default is to cache everything in tradeoff for stability over disk space. 1970 var cache = BundleCacheType.Keep; // the default is to cache everything in tradeoff for stability over disk space.
1971 string cacheId = null; 1971 string cacheId = null;
1972 string description = null; 1972 string description = null;
1973 string displayName = null; 1973 string displayName = null;
@@ -2028,19 +2028,19 @@ namespace WixToolset.Core
2028 var value = this.Core.GetAttributeValue(sourceLineNumbers, attrib); 2028 var value = this.Core.GetAttributeValue(sourceLineNumbers, attrib);
2029 switch (value) 2029 switch (value)
2030 { 2030 {
2031 case "always": 2031 case "force":
2032 cache = YesNoAlwaysType.Always; 2032 cache = BundleCacheType.Force;
2033 break; 2033 break;
2034 case "yes": 2034 case "keep":
2035 cache = YesNoAlwaysType.Yes; 2035 cache = BundleCacheType.Keep;
2036 break; 2036 break;
2037 case "no": 2037 case "remove":
2038 cache = YesNoAlwaysType.No; 2038 cache = BundleCacheType.Remove;
2039 break; 2039 break;
2040 case "": 2040 case "":
2041 break; 2041 break;
2042 default: 2042 default:
2043 this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, value, "always", "yes", "no")); 2043 this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, value, "force", "keep", "remove"));
2044 break; 2044 break;
2045 } 2045 }
2046 break; 2046 break;
@@ -2316,6 +2316,7 @@ namespace WixToolset.Core
2316 Type = packageType, 2316 Type = packageType,
2317 Attributes = attributes, 2317 Attributes = attributes,
2318 InstallCondition = installCondition, 2318 InstallCondition = installCondition,
2319 Cache = cache,
2319 CacheId = cacheId, 2320 CacheId = cacheId,
2320 Description = description, 2321 Description = description,
2321 DisplayName = displayName, 2322 DisplayName = displayName,
@@ -2323,11 +2324,6 @@ namespace WixToolset.Core
2323 RollbackLogPathVariable = rollbackPathVariable, 2324 RollbackLogPathVariable = rollbackPathVariable,
2324 }); 2325 });
2325 2326
2326 if (YesNoAlwaysType.NotSet != cache)
2327 {
2328 chainPackageSymbol.Cache = cache;
2329 }
2330
2331 if (YesNoType.NotSet != vital) 2327 if (YesNoType.NotSet != vital)
2332 { 2328 {
2333 chainPackageSymbol.Vital = (vital == YesNoType.Yes); 2329 chainPackageSymbol.Vital = (vital == YesNoType.Yes);
diff --git a/src/wix/heat/Serialize/wix.cs b/src/wix/heat/Serialize/wix.cs
index e5a81cd0..b881fb92 100644
--- a/src/wix/heat/Serialize/wix.cs
+++ b/src/wix/heat/Serialize/wix.cs
@@ -253,46 +253,45 @@ namespace WixToolset.Harvesters.Serialize
253 } 253 }
254 return true; 254 return true;
255 } 255 }
256 256
257 /// <summary> 257 /// <summary>
258 /// Parses a YesNoAlwaysType from a string. 258 /// Parses a BundleCacheType from a string.
259 /// </summary> 259 /// </summary>
260 public static YesNoAlwaysType ParseYesNoAlwaysType(string value) 260 public static BundleCacheType ParseBundleCacheType(string value)
261 { 261 {
262 YesNoAlwaysType parsedValue; 262 Enums.TryBundleCacheType(value, out var parsedValue);
263 Enums.TryParseYesNoAlwaysType(value, out parsedValue);
264 return parsedValue; 263 return parsedValue;
265 } 264 }
266 265
267 /// <summary> 266 /// <summary>
268 /// Tries to parse a YesNoAlwaysType from a string. 267 /// Tries to parse a YesNoAlwaysType from a string.
269 /// </summary> 268 /// </summary>
270 public static bool TryParseYesNoAlwaysType(string value, out YesNoAlwaysType parsedValue) 269 public static bool TryBundleCacheType(string value, out BundleCacheType parsedValue)
271 { 270 {
272 parsedValue = YesNoAlwaysType.NotSet; 271 parsedValue = BundleCacheType.NotSet;
273 if (string.IsNullOrEmpty(value)) 272 if (string.IsNullOrEmpty(value))
274 { 273 {
275 return false; 274 return false;
276 } 275 }
277 if (("always" == value)) 276
277 if (("force" == value))
278 { 278 {
279 parsedValue = YesNoAlwaysType.always; 279 parsedValue = BundleCacheType.force;
280 } 280 }
281 else 281 else
282 { 282 {
283 if (("no" == value)) 283 if (("remove" == value))
284 { 284 {
285 parsedValue = YesNoAlwaysType.no; 285 parsedValue = BundleCacheType.remove;
286 } 286 }
287 else 287 else
288 { 288 {
289 if (("yes" == value)) 289 if (("keep" == value))
290 { 290 {
291 parsedValue = YesNoAlwaysType.yes; 291 parsedValue = BundleCacheType.keep;
292 } 292 }
293 else 293 else
294 { 294 {
295 parsedValue = YesNoAlwaysType.IllegalValue;
296 return false; 295 return false;
297 } 296 }
298 } 297 }
@@ -656,18 +655,15 @@ namespace WixToolset.Harvesters.Serialize
656 /// Values of this type will either be "always", "yes", or "no". 655 /// Values of this type will either be "always", "yes", or "no".
657 /// </summary> 656 /// </summary>
658 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] 657 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
659 public enum YesNoAlwaysType 658 public enum BundleCacheType
660 { 659 {
661
662 IllegalValue = int.MaxValue,
663
664 NotSet = -1, 660 NotSet = -1,
665 661
666 always, 662 force,
667 663
668 no, 664 remove,
669 665
670 yes, 666 keep,
671 } 667 }
672 668
673 /// <summary> 669 /// <summary>
@@ -3732,7 +3728,7 @@ namespace WixToolset.Harvesters.Serialize
3732 3728
3733 private bool installConditionFieldSet; 3729 private bool installConditionFieldSet;
3734 3730
3735 private YesNoAlwaysType cacheField; 3731 private BundleCacheType cacheField;
3736 3732
3737 private bool cacheFieldSet; 3733 private bool cacheFieldSet;
3738 3734
@@ -3939,7 +3935,7 @@ namespace WixToolset.Harvesters.Serialize
3939 /// <summary> 3935 /// <summary>
3940 /// Whether to cache the package. The default is "yes". 3936 /// Whether to cache the package. The default is "yes".
3941 /// </summary> 3937 /// </summary>
3942 public YesNoAlwaysType Cache 3938 public BundleCacheType Cache
3943 { 3939 {
3944 get 3940 get
3945 { 3941 {
@@ -4285,17 +4281,17 @@ namespace WixToolset.Harvesters.Serialize
4285 } 4281 }
4286 if (this.cacheFieldSet) 4282 if (this.cacheFieldSet)
4287 { 4283 {
4288 if ((this.cacheField == YesNoAlwaysType.always)) 4284 if ((this.cacheField == BundleCacheType.force))
4289 { 4285 {
4290 writer.WriteAttributeString("Cache", "always"); 4286 writer.WriteAttributeString("Cache", "force");
4291 } 4287 }
4292 if ((this.cacheField == YesNoAlwaysType.no)) 4288 if ((this.cacheField == BundleCacheType.remove))
4293 { 4289 {
4294 writer.WriteAttributeString("Cache", "no"); 4290 writer.WriteAttributeString("Cache", "remove");
4295 } 4291 }
4296 if ((this.cacheField == YesNoAlwaysType.yes)) 4292 if ((this.cacheField == BundleCacheType.keep))
4297 { 4293 {
4298 writer.WriteAttributeString("Cache", "yes"); 4294 writer.WriteAttributeString("Cache", "keep");
4299 } 4295 }
4300 } 4296 }
4301 if (this.cacheIdFieldSet) 4297 if (this.cacheIdFieldSet)
@@ -4463,7 +4459,7 @@ namespace WixToolset.Harvesters.Serialize
4463 } 4459 }
4464 if (("Cache" == name)) 4460 if (("Cache" == name))
4465 { 4461 {
4466 this.cacheField = Enums.ParseYesNoAlwaysType(value); 4462 this.cacheField = Enums.ParseBundleCacheType(value);
4467 this.cacheFieldSet = true; 4463 this.cacheFieldSet = true;
4468 } 4464 }
4469 if (("CacheId" == name)) 4465 if (("CacheId" == name))
@@ -4571,7 +4567,7 @@ namespace WixToolset.Harvesters.Serialize
4571 4567
4572 private bool installConditionFieldSet; 4568 private bool installConditionFieldSet;
4573 4569
4574 private YesNoAlwaysType cacheField; 4570 private BundleCacheType cacheField;
4575 4571
4576 private bool cacheFieldSet; 4572 private bool cacheFieldSet;
4577 4573
@@ -4767,9 +4763,9 @@ namespace WixToolset.Harvesters.Serialize
4767 } 4763 }
4768 4764
4769 /// <summary> 4765 /// <summary>
4770 /// Whether to cache the package. The default is "yes". 4766 /// Whether to cache the package. The default is "keep".
4771 /// </summary> 4767 /// </summary>
4772 public YesNoAlwaysType Cache 4768 public BundleCacheType Cache
4773 { 4769 {
4774 get 4770 get
4775 { 4771 {
@@ -5073,17 +5069,17 @@ namespace WixToolset.Harvesters.Serialize
5073 } 5069 }
5074 if (this.cacheFieldSet) 5070 if (this.cacheFieldSet)
5075 { 5071 {
5076 if ((this.cacheField == YesNoAlwaysType.always)) 5072 if ((this.cacheField == BundleCacheType.force))
5077 { 5073 {
5078 writer.WriteAttributeString("Cache", "always"); 5074 writer.WriteAttributeString("Cache", "force");
5079 } 5075 }
5080 if ((this.cacheField == YesNoAlwaysType.no)) 5076 if ((this.cacheField == BundleCacheType.remove))
5081 { 5077 {
5082 writer.WriteAttributeString("Cache", "no"); 5078 writer.WriteAttributeString("Cache", "remove");
5083 } 5079 }
5084 if ((this.cacheField == YesNoAlwaysType.yes)) 5080 if ((this.cacheField == BundleCacheType.keep))
5085 { 5081 {
5086 writer.WriteAttributeString("Cache", "yes"); 5082 writer.WriteAttributeString("Cache", "keep");
5087 } 5083 }
5088 } 5084 }
5089 if (this.cacheIdFieldSet) 5085 if (this.cacheIdFieldSet)
@@ -5233,7 +5229,7 @@ namespace WixToolset.Harvesters.Serialize
5233 } 5229 }
5234 if (("Cache" == name)) 5230 if (("Cache" == name))
5235 { 5231 {
5236 this.cacheField = Enums.ParseYesNoAlwaysType(value); 5232 this.cacheField = Enums.ParseBundleCacheType(value);
5237 this.cacheFieldSet = true; 5233 this.cacheFieldSet = true;
5238 } 5234 }
5239 if (("CacheId" == name)) 5235 if (("CacheId" == name))
@@ -5331,7 +5327,7 @@ namespace WixToolset.Harvesters.Serialize
5331 5327
5332 private bool installConditionFieldSet; 5328 private bool installConditionFieldSet;
5333 5329
5334 private YesNoAlwaysType cacheField; 5330 private BundleCacheType cacheField;
5335 5331
5336 private bool cacheFieldSet; 5332 private bool cacheFieldSet;
5337 5333
@@ -5529,7 +5525,7 @@ namespace WixToolset.Harvesters.Serialize
5529 /// <summary> 5525 /// <summary>
5530 /// Whether to cache the package. The default is "yes". 5526 /// Whether to cache the package. The default is "yes".
5531 /// </summary> 5527 /// </summary>
5532 public YesNoAlwaysType Cache 5528 public BundleCacheType Cache
5533 { 5529 {
5534 get 5530 get
5535 { 5531 {
@@ -5838,17 +5834,17 @@ namespace WixToolset.Harvesters.Serialize
5838 } 5834 }
5839 if (this.cacheFieldSet) 5835 if (this.cacheFieldSet)
5840 { 5836 {
5841 if ((this.cacheField == YesNoAlwaysType.always)) 5837 if ((this.cacheField == BundleCacheType.force))
5842 { 5838 {
5843 writer.WriteAttributeString("Cache", "always"); 5839 writer.WriteAttributeString("Cache", "force");
5844 } 5840 }
5845 if ((this.cacheField == YesNoAlwaysType.no)) 5841 if ((this.cacheField == BundleCacheType.remove))
5846 { 5842 {
5847 writer.WriteAttributeString("Cache", "no"); 5843 writer.WriteAttributeString("Cache", "remove");
5848 } 5844 }
5849 if ((this.cacheField == YesNoAlwaysType.yes)) 5845 if ((this.cacheField == BundleCacheType.keep))
5850 { 5846 {
5851 writer.WriteAttributeString("Cache", "yes"); 5847 writer.WriteAttributeString("Cache", "keep");
5852 } 5848 }
5853 } 5849 }
5854 if (this.cacheIdFieldSet) 5850 if (this.cacheIdFieldSet)
@@ -5980,7 +5976,7 @@ namespace WixToolset.Harvesters.Serialize
5980 } 5976 }
5981 if (("Cache" == name)) 5977 if (("Cache" == name))
5982 { 5978 {
5983 this.cacheField = Enums.ParseYesNoAlwaysType(value); 5979 this.cacheField = Enums.ParseBundleCacheType(value);
5984 this.cacheFieldSet = true; 5980 this.cacheFieldSet = true;
5985 } 5981 }
5986 if (("CacheId" == name)) 5982 if (("CacheId" == name))
@@ -6078,7 +6074,7 @@ namespace WixToolset.Harvesters.Serialize
6078 6074
6079 private bool installConditionFieldSet; 6075 private bool installConditionFieldSet;
6080 6076
6081 private YesNoAlwaysType cacheField; 6077 private BundleCacheType cacheField;
6082 6078
6083 private bool cacheFieldSet; 6079 private bool cacheFieldSet;
6084 6080
@@ -6294,7 +6290,7 @@ namespace WixToolset.Harvesters.Serialize
6294 /// <summary> 6290 /// <summary>
6295 /// Whether to cache the package. The default is "yes". 6291 /// Whether to cache the package. The default is "yes".
6296 /// </summary> 6292 /// </summary>
6297 public YesNoAlwaysType Cache 6293 public BundleCacheType Cache
6298 { 6294 {
6299 get 6295 get
6300 { 6296 {
@@ -6675,17 +6671,17 @@ namespace WixToolset.Harvesters.Serialize
6675 } 6671 }
6676 if (this.cacheFieldSet) 6672 if (this.cacheFieldSet)
6677 { 6673 {
6678 if ((this.cacheField == YesNoAlwaysType.always)) 6674 if ((this.cacheField == BundleCacheType.force))
6679 { 6675 {
6680 writer.WriteAttributeString("Cache", "always"); 6676 writer.WriteAttributeString("Cache", "force");
6681 } 6677 }
6682 if ((this.cacheField == YesNoAlwaysType.no)) 6678 if ((this.cacheField == BundleCacheType.remove))
6683 { 6679 {
6684 writer.WriteAttributeString("Cache", "no"); 6680 writer.WriteAttributeString("Cache", "remove");
6685 } 6681 }
6686 if ((this.cacheField == YesNoAlwaysType.yes)) 6682 if ((this.cacheField == BundleCacheType.keep))
6687 { 6683 {
6688 writer.WriteAttributeString("Cache", "yes"); 6684 writer.WriteAttributeString("Cache", "keep");
6689 } 6685 }
6690 } 6686 }
6691 if (this.cacheIdFieldSet) 6687 if (this.cacheIdFieldSet)
@@ -6855,7 +6851,7 @@ namespace WixToolset.Harvesters.Serialize
6855 } 6851 }
6856 if (("Cache" == name)) 6852 if (("Cache" == name))
6857 { 6853 {
6858 this.cacheField = Enums.ParseYesNoAlwaysType(value); 6854 this.cacheField = Enums.ParseBundleCacheType(value);
6859 this.cacheFieldSet = true; 6855 this.cacheFieldSet = true;
6860 } 6856 }
6861 if (("CacheId" == name)) 6857 if (("CacheId" == name))
diff --git a/src/wix/test/WixToolsetTest.Converters/BundleCacheFixture.cs b/src/wix/test/WixToolsetTest.Converters/BundleCacheFixture.cs
new file mode 100644
index 00000000..d1ba0cbf
--- /dev/null
+++ b/src/wix/test/WixToolsetTest.Converters/BundleCacheFixture.cs
@@ -0,0 +1,154 @@
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
3namespace WixToolsetTest.Converters
4{
5 using System;
6 using System.Xml.Linq;
7 using WixBuildTools.TestSupport;
8 using WixToolset.Converters;
9 using WixToolsetTest.Converters.Mocks;
10 using Xunit;
11
12 public class BundleCacheFixture : BaseConverterFixture
13 {
14 [Fact]
15 public void CanConvertExeAlwaysCache()
16 {
17 var parse = String.Join(Environment.NewLine,
18 "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>",
19 " <Fragment>",
20 " <PackageGroup Id='exe'>",
21 " <ExePackage InstallCommand='-install' RepairCommand='-repair' UninstallCommand='-uninstall' Cache='always' SourceFile='test.exe' />",
22 " </PackageGroup>",
23 " </Fragment>",
24 "</Wix>");
25
26 var expected = new[]
27 {
28 "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">",
29 " <Fragment>",
30 " <PackageGroup Id=\"exe\">",
31 " <ExePackage Cache=\"force\" SourceFile=\"test.exe\" InstallArguments=\"-install\" RepairArguments=\"-repair\" UninstallArguments=\"-uninstall\" />",
32 " </PackageGroup>",
33 " </Fragment>",
34 "</Wix>"
35 };
36
37 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
38
39 var messaging = new MockMessaging();
40 var converter = new WixConverter(messaging, 2, null, null);
41
42 var errors = converter.ConvertDocument(document);
43 Assert.Equal(4, errors);
44
45 var actualLines = UnformattedDocumentLines(document);
46 WixAssert.CompareLineByLine(expected, actualLines);
47 }
48
49 [Fact]
50 public void CanConvertMsiNoCache()
51 {
52 var parse = String.Join(Environment.NewLine,
53 "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>",
54 " <Fragment>",
55 " <PackageGroup Id='msi'>",
56 " <MsiPackage Cache='no' SourceFile='test.msi' />",
57 " </PackageGroup>",
58 " </Fragment>",
59 "</Wix>");
60
61 var expected = new[]
62 {
63 "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">",
64 " <Fragment>",
65 " <PackageGroup Id=\"msi\">",
66 " <MsiPackage Cache=\"remove\" SourceFile=\"test.msi\" />",
67 " </PackageGroup>",
68 " </Fragment>",
69 "</Wix>"
70 };
71
72 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
73
74 var messaging = new MockMessaging();
75 var converter = new WixConverter(messaging, 2, null, null);
76
77 var errors = converter.ConvertDocument(document);
78 Assert.Equal(1, errors);
79
80 var actualLines = UnformattedDocumentLines(document);
81 WixAssert.CompareLineByLine(expected, actualLines);
82 }
83
84 [Fact]
85 public void CanConvertMspYesCache()
86 {
87 var parse = String.Join(Environment.NewLine,
88 "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>",
89 " <Fragment>",
90 " <PackageGroup Id='exe'>",
91 " <MspPackage Cache='yes' SourceFile='test.msp' />",
92 " </PackageGroup>",
93 " </Fragment>",
94 "</Wix>");
95
96 var expected = new[]
97 {
98 "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">",
99 " <Fragment>",
100 " <PackageGroup Id=\"exe\">",
101 " <MspPackage Cache=\"keep\" SourceFile=\"test.msp\" />",
102 " </PackageGroup>",
103 " </Fragment>",
104 "</Wix>"
105 };
106
107 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
108
109 var messaging = new MockMessaging();
110 var converter = new WixConverter(messaging, 2, null, null);
111
112 var errors = converter.ConvertDocument(document);
113 Assert.Equal(1, errors);
114
115 var actualLines = UnformattedDocumentLines(document);
116 WixAssert.CompareLineByLine(expected, actualLines);
117 }
118
119 [Fact]
120 public void CanConvertMsuYesCache()
121 {
122 var parse = String.Join(Environment.NewLine,
123 "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>",
124 " <Fragment>",
125 " <PackageGroup Id='exe'>",
126 " <MsuPackage Cache='yes' SourceFile='test.msp' />",
127 " </PackageGroup>",
128 " </Fragment>",
129 "</Wix>");
130
131 var expected = new[]
132 {
133 "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">",
134 " <Fragment>",
135 " <PackageGroup Id=\"exe\">",
136 " <MsuPackage Cache=\"keep\" SourceFile=\"test.msp\" />",
137 " </PackageGroup>",
138 " </Fragment>",
139 "</Wix>"
140 };
141
142 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
143
144 var messaging = new MockMessaging();
145 var converter = new WixConverter(messaging, 2, null, null);
146
147 var errors = converter.ConvertDocument(document);
148 Assert.Equal(1, errors);
149
150 var actualLines = UnformattedDocumentLines(document);
151 WixAssert.CompareLineByLine(expected, actualLines);
152 }
153 }
154}