diff options
author | Rob Mensching <rob@firegiant.com> | 2022-03-02 11:37:29 -0800 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2022-03-02 12:30:07 -0800 |
commit | 726013926b7cef670d228fabb0a65c6a13fc5835 (patch) | |
tree | 11b41ba84a3af10f0998bb0b6b16b789e9882adf | |
parent | 8bd6ae43c8e79bf8e715f4857b4ae9a7ba388596 (diff) | |
download | wix-726013926b7cef670d228fabb0a65c6a13fc5835.tar.gz wix-726013926b7cef670d228fabb0a65c6a13fc5835.tar.bz2 wix-726013926b7cef670d228fabb0a65c6a13fc5835.zip |
Set ExePackage/@Uninstallable in bundle manifests
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> |