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 /src | |
| parent | 8bd6ae43c8e79bf8e715f4857b4ae9a7ba388596 (diff) | |
| download | wix-726013926b7cef670d228fabb0a65c6a13fc5835.tar.gz wix-726013926b7cef670d228fabb0a65c6a13fc5835.tar.bz2 wix-726013926b7cef670d228fabb0a65c6a13fc5835.zip | |
Set ExePackage/@Uninstallable in bundle manifests
Diffstat (limited to 'src')
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> |
