Fix bug where MSIFASTINSTALL was not set properly for MsiPackages.
Sean Hall committed
Apr 4, 2022 at 10:58 UTC
7ff59a67c279c2c6a3139b29cb8f0c4ffdc2ea7f
3 files changed
+7
-2
src/wix/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
+2
-1
@@ -170,7 +170,7 @@ namespace WixToolset.Core.Burn.Bundles
170
this.SetPackageVisibility(systemComponent, msiPackage, msiPropertyNames);
171
172
// Unless the MSI or setup code overrides the default, set MSIFASTINSTALL for best performance.
173
- if (!String.IsNullOrEmpty(fastInstall))
173
+ if (String.IsNullOrEmpty(fastInstall) && !msiPropertyNames.Contains("MSIFASTINSTALL"))
174
{
175
this.AddMsiProperty(msiPackage, "MSIFASTINSTALL", "7");
176
}
@@ -218,6 +218,7 @@ namespace WixToolset.Core.Burn.Bundles
218
219
private void SetPerMachineAppropriately(string allusers, WixBundleMsiPackageSymbol msiPackage, string sourcePath)
220
{
221
+ // Can ignore ALLUSERS from MsiProperties because it is not allowed there.
222
if (msiPackage.ForcePerMachine)
223
{
224
if (YesNoDefaultType.No == this.Facade.PackageSymbol.PerMachine)
src/wix/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs
+2
@@ -149,6 +149,7 @@ namespace WixToolsetTest.CoreIntegration
149
WixAssert.CompareLineByLine(new string[]
150
{
151
"<MsiPackage Id='FirstX86.msi' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='no' Vital='yes' RollbackBoundaryForward='WixDefaultBoundary' LogPathVariable='WixBundleLog_FirstX86.msi' RollbackLogPathVariable='WixBundleRollbackLog_FirstX86.msi' ProductCode='*' Language='1033' Version='1.0.0.0' UpgradeCode='{12E4699F-E774-4D05-8A01-5BDD41BBA127}'>" +
152
+ "<MsiProperty Id='MSIFASTINSTALL' Value='1' />" +
153
"<MsiProperty Id='ARPSYSTEMCOMPONENT' Value='1' />" +
154
$"<Provides Key='{GetProductCodeFromMsiPdb(pdbPaths[0])}_v1.0.0.0' Version='1.0.0.0' DisplayName='MsiPackage' />" +
155
"<RelatedPackage Id='{12E4699F-E774-4D05-8A01-5BDD41BBA127}' MaxVersion='1.0.0.0' MaxInclusive='no' OnlyDetect='no' LangInclusive='yes'><Language Id='1033' /></RelatedPackage>" +
@@ -158,6 +159,7 @@ namespace WixToolsetTest.CoreIntegration
159
"</MsiPackage>",
160
"<MsiPackage Id='FirstX64.msi' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='no' Vital='yes' RollbackBoundaryBackward='WixDefaultBoundary' LogPathVariable='WixBundleLog_FirstX64.msi' RollbackLogPathVariable='WixBundleRollbackLog_FirstX64.msi' ProductCode='*' Language='1033' Version='1.0.0.0' UpgradeCode='{12E4699F-E774-4D05-8A01-5BDD41BBA127}'>" +
161
"<MsiProperty Id='ARPSYSTEMCOMPONENT' Value='1' />" +
162
+ "<MsiProperty Id='MSIFASTINSTALL' Value='7' />" +
163
$"<Provides Key='{GetProductCodeFromMsiPdb(pdbPaths[1])}_v1.0.0.0' Version='1.0.0.0' DisplayName='MsiPackage' />" +
164
"<RelatedPackage Id='{12E4699F-E774-4D05-8A01-5BDD41BBA127}' MaxVersion='1.0.0.0' MaxInclusive='no' OnlyDetect='no' LangInclusive='yes'><Language Id='1033' /></RelatedPackage>" +
165
"<RelatedPackage Id='{12E4699F-E774-4D05-8A01-5BDD41BBA127}' MinVersion='1.0.0.0' MinInclusive='no' OnlyDetect='yes' LangInclusive='yes'><Language Id='1033' /></RelatedPackage>" +
src/wix/test/WixToolsetTest.CoreIntegration/TestData/Container/HarvestIntoDetachedContainer.wxs
+3
-1
@@ -2,7 +2,9 @@
2
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3
<Fragment>
4
<PackageGroup Id="BundlePackages">
5
- <MsiPackage SourceFile="FirstX86.msi" />
5
+ <MsiPackage SourceFile="FirstX86.msi">
6
+ <MsiProperty Name="MSIFASTINSTALL" Value="1" />
7
+ </MsiPackage>
8
<PackageGroupRef Id="FirstX64" />
9
</PackageGroup>
10
<PackageGroup Id="FirstX64">