aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2022-03-02 11:37:29 -0800
committerRob Mensching <rob@firegiant.com>2022-03-02 12:30:07 -0800
commit726013926b7cef670d228fabb0a65c6a13fc5835 (patch)
tree11b41ba84a3af10f0998bb0b6b16b789e9882adf
parent8bd6ae43c8e79bf8e715f4857b4ae9a7ba388596 (diff)
downloadwix-726013926b7cef670d228fabb0a65c6a13fc5835.tar.gz
wix-726013926b7cef670d228fabb0a65c6a13fc5835.tar.bz2
wix-726013926b7cef670d228fabb0a65c6a13fc5835.zip
Set ExePackage/@Uninstallable in bundle manifests
-rw-r--r--src/api/api.v3.ncrunchsolution6
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs4
-rw-r--r--src/api/wix/test/WixToolsetTest.Data/SerializeFixture.cs5
-rw-r--r--src/wix/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs1
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs4
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/PackagePayloadFixture.cs2
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/SharedPayloadsBetweenPackages/SharedPayloadsBetweenPackages.wxs4
7 files changed, 19 insertions, 7 deletions
diff --git a/src/api/api.v3.ncrunchsolution b/src/api/api.v3.ncrunchsolution
new file mode 100644
index 00000000..10420ac9
--- /dev/null
+++ b/src/api/api.v3.ncrunchsolution
@@ -0,0 +1,6 @@
1<SolutionConfiguration>
2 <Settings>
3 <AllowParallelTestExecution>True</AllowParallelTestExecution>
4 <SolutionConfigured>True</SolutionConfigured>
5 </Settings>
6</SolutionConfiguration> \ No newline at end of file
diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs
index 8a8cff1b..64a21321 100644
--- a/src/api/wix/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs
@@ -89,6 +89,8 @@ namespace WixToolset.Data.Symbols
89 set => this.Set((int)WixBundleExePackageSymbolFields.ExeProtocol, value); 89 set => this.Set((int)WixBundleExePackageSymbolFields.ExeProtocol, value);
90 } 90 }
91 91
92 public bool Repairable => !String.IsNullOrEmpty(this.RepairCommand); 92 public bool Repairable => this.RepairCommand != null;
93
94 public bool Uninstallable => this.UninstallCommand != null;
93 } 95 }
94} 96}
diff --git a/src/api/wix/test/WixToolsetTest.Data/SerializeFixture.cs b/src/api/wix/test/WixToolsetTest.Data/SerializeFixture.cs
index cd485fd2..cda5d79a 100644
--- a/src/api/wix/test/WixToolsetTest.Data/SerializeFixture.cs
+++ b/src/api/wix/test/WixToolsetTest.Data/SerializeFixture.cs
@@ -25,9 +25,10 @@ namespace WixToolsetTest.Data
25 25
26 section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) 26 section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent"))
27 { 27 {
28 ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), 28 ComponentId = String.Empty,
29 DirectoryRef = "TestFolder", 29 DirectoryRef = "TestFolder",
30 Location = ComponentLocation.Either, 30 Location = ComponentLocation.Either,
31 KeyPath = null,
31 }); 32 });
32 33
33 var intermediate = new Intermediate("TestIntermediate", IntermediateLevels.Compiled, new[] { section }, null); 34 var intermediate = new Intermediate("TestIntermediate", IntermediateLevels.Compiled, new[] { section }, null);
@@ -50,8 +51,10 @@ namespace WixToolsetTest.Data
50 51
51 Assert.Equal("TestComponent", symbol.Id.Id); 52 Assert.Equal("TestComponent", symbol.Id.Id);
52 Assert.Equal(AccessModifier.Global, symbol.Id.Access); 53 Assert.Equal(AccessModifier.Global, symbol.Id.Access);
54 Assert.Equal(String.Empty, symbol.ComponentId);
53 Assert.Equal("TestFolder", symbol.DirectoryRef); 55 Assert.Equal("TestFolder", symbol.DirectoryRef);
54 Assert.Equal(ComponentLocation.Either, symbol.Location); 56 Assert.Equal(ComponentLocation.Either, symbol.Location);
57 Assert.Null(symbol.KeyPath);
55 } 58 }
56 finally 59 finally
57 { 60 {
diff --git a/src/wix/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs b/src/wix/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs
index af45e736..38cdf943 100644
--- a/src/wix/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs
+++ b/src/wix/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs
@@ -386,6 +386,7 @@ namespace WixToolset.Core.Burn.Bundles
386 writer.WriteAttributeString("DetectCondition", exePackage.DetectCondition); 386 writer.WriteAttributeString("DetectCondition", exePackage.DetectCondition);
387 writer.WriteAttributeString("InstallArguments", exePackage.InstallCommand); 387 writer.WriteAttributeString("InstallArguments", exePackage.InstallCommand);
388 writer.WriteAttributeString("UninstallArguments", exePackage.UninstallCommand); 388 writer.WriteAttributeString("UninstallArguments", exePackage.UninstallCommand);
389 writer.WriteAttributeString("Uninstallable", exePackage.Uninstallable ? "yes" : "no");
389 writer.WriteAttributeString("RepairArguments", exePackage.RepairCommand); 390 writer.WriteAttributeString("RepairArguments", exePackage.RepairCommand);
390 writer.WriteAttributeString("Repairable", exePackage.Repairable ? "yes" : "no"); 391 writer.WriteAttributeString("Repairable", exePackage.Repairable ? "yes" : "no");
391 if (!String.IsNullOrEmpty(exePackage.ExeProtocol)) 392 if (!String.IsNullOrEmpty(exePackage.ExeProtocol))
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs
index 534086b6..29c9dd95 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs
@@ -311,8 +311,8 @@ namespace WixToolsetTest.CoreIntegration
311 { "ExePackage", new List<string> { "CacheId", "InstallSize", "Size" } }, 311 { "ExePackage", new List<string> { "CacheId", "InstallSize", "Size" } },
312 }; 312 };
313 Assert.Equal(2, exePackageElements.Count); 313 Assert.Equal(2, exePackageElements.Count);
314 Assert.Equal("<ExePackage Id='credwiz.exe' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='yes' Vital='yes' RollbackBoundaryForward='WixDefaultBoundary' LogPathVariable='WixBundleLog_credwiz.exe' RollbackLogPathVariable='WixBundleRollbackLog_credwiz.exe' DetectCondition='none' InstallArguments='' UninstallArguments='' RepairArguments='' Repairable='no'><PayloadRef Id='credwiz.exe' /><PayloadRef Id='SourceFilePayload' /></ExePackage>", exePackageElements[0].GetTestXml(ignoreAttributesByElementName)); 314 Assert.Equal("<ExePackage Id='credwiz.exe' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='yes' Vital='yes' RollbackBoundaryForward='WixDefaultBoundary' LogPathVariable='WixBundleLog_credwiz.exe' RollbackLogPathVariable='WixBundleRollbackLog_credwiz.exe' DetectCondition='none' InstallArguments='' UninstallArguments='-foo' Uninstallable='yes' RepairArguments='' Repairable='no'><PayloadRef Id='credwiz.exe' /><PayloadRef Id='SourceFilePayload' /></ExePackage>", exePackageElements[0].GetTestXml(ignoreAttributesByElementName));
315 Assert.Equal("<ExePackage Id='cscript.exe' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='yes' Vital='yes' RollbackBoundaryBackward='WixDefaultBoundary' LogPathVariable='WixBundleLog_cscript.exe' RollbackLogPathVariable='WixBundleRollbackLog_cscript.exe' DetectCondition='none' InstallArguments='' UninstallArguments='' RepairArguments='' Repairable='no'><PayloadRef Id='cscript.exe' /><PayloadRef Id='SourceFilePayload' /></ExePackage>", exePackageElements[1].GetTestXml(ignoreAttributesByElementName)); 315 Assert.Equal("<ExePackage Id='cscript.exe' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='yes' Vital='yes' RollbackBoundaryBackward='WixDefaultBoundary' LogPathVariable='WixBundleLog_cscript.exe' RollbackLogPathVariable='WixBundleRollbackLog_cscript.exe' DetectCondition='none' InstallArguments='' UninstallArguments='' Uninstallable='yes' RepairArguments='' Repairable='no'><PayloadRef Id='cscript.exe' /><PayloadRef Id='SourceFilePayload' /></ExePackage>", exePackageElements[1].GetTestXml(ignoreAttributesByElementName));
316 } 316 }
317 } 317 }
318 318
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/PackagePayloadFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/PackagePayloadFixture.cs
index 5d0c8561..6db96dbc 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/PackagePayloadFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/PackagePayloadFixture.cs
@@ -48,7 +48,7 @@ namespace WixToolsetTest.CoreIntegration
48 { "ExePackage", new List<string> { "CacheId", "InstallSize", "Size" } }, 48 { "ExePackage", new List<string> { "CacheId", "InstallSize", "Size" } },
49 }; 49 };
50 Assert.Equal(1, exePackageElements.Count); 50 Assert.Equal(1, exePackageElements.Count);
51 Assert.Equal("<ExePackage Id='PackagePayloadInPayloadGroup' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='yes' Vital='yes' RollbackBoundaryForward='WixDefaultBoundary' RollbackBoundaryBackward='WixDefaultBoundary' LogPathVariable='WixBundleLog_PackagePayloadInPayloadGroup' RollbackLogPathVariable='WixBundleRollbackLog_PackagePayloadInPayloadGroup' DetectCondition='none' InstallArguments='' UninstallArguments='' RepairArguments='' Repairable='no'><PayloadRef Id='burn.exe' /></ExePackage>", exePackageElements[0].GetTestXml(ignoreAttributesByElementName)); 51 Assert.Equal("<ExePackage Id='PackagePayloadInPayloadGroup' Cache='keep' CacheId='*' InstallSize='*' Size='*' PerMachine='yes' Permanent='yes' Vital='yes' RollbackBoundaryForward='WixDefaultBoundary' RollbackBoundaryBackward='WixDefaultBoundary' LogPathVariable='WixBundleLog_PackagePayloadInPayloadGroup' RollbackLogPathVariable='WixBundleRollbackLog_PackagePayloadInPayloadGroup' DetectCondition='none' InstallArguments='' UninstallArguments='' Uninstallable='no' RepairArguments='' Repairable='no'><PayloadRef Id='burn.exe' /></ExePackage>", exePackageElements[0].GetTestXml(ignoreAttributesByElementName));
52 52
53 var payloadElements = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload[@Id='burn.exe']"); 53 var payloadElements = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload[@Id='burn.exe']");
54 Assert.Equal(1, payloadElements.Count); 54 Assert.Equal(1, payloadElements.Count);
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SharedPayloadsBetweenPackages/SharedPayloadsBetweenPackages.wxs b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SharedPayloadsBetweenPackages/SharedPayloadsBetweenPackages.wxs
index f16fce0d..2897a4ac 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SharedPayloadsBetweenPackages/SharedPayloadsBetweenPackages.wxs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SharedPayloadsBetweenPackages/SharedPayloadsBetweenPackages.wxs
@@ -2,10 +2,10 @@
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment> 3 <Fragment>
4 <PackageGroup Id="BundlePackages"> 4 <PackageGroup Id="BundlePackages">
5 <ExePackage SourceFile="C:\Windows\system32\credwiz.exe" Permanent="yes" DetectCondition="none"> 5 <ExePackage SourceFile="C:\Windows\system32\credwiz.exe" Permanent="yes" DetectCondition="none" UninstallArguments="-foo">
6 <PayloadGroupRef Id="SharedPayloads" /> 6 <PayloadGroupRef Id="SharedPayloads" />
7 </ExePackage> 7 </ExePackage>
8 <ExePackage SourceFile="C:\Windows\system32\cscript.exe" Permanent="yes" DetectCondition="none"> 8 <ExePackage SourceFile="C:\Windows\system32\cscript.exe" Permanent="yes" DetectCondition="none" UninstallArguments="">
9 <PayloadGroupRef Id="SharedPayloads" /> 9 <PayloadGroupRef Id="SharedPayloads" />
10 </ExePackage> 10 </ExePackage>
11 </PackageGroup> 11 </PackageGroup>