From 726013926b7cef670d228fabb0a65c6a13fc5835 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 2 Mar 2022 11:37:29 -0800 Subject: Set ExePackage/@Uninstallable in bundle manifests --- src/api/api.v3.ncrunchsolution | 6 ++++++ src/api/wix/WixToolset.Data/Symbols/WixBundleExePackageSymbol.cs | 4 +++- src/api/wix/test/WixToolsetTest.Data/SerializeFixture.cs | 5 ++++- src/wix/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs | 1 + .../test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs | 4 ++-- .../test/WixToolsetTest.CoreIntegration/PackagePayloadFixture.cs | 2 +- .../SharedPayloadsBetweenPackages/SharedPayloadsBetweenPackages.wxs | 4 ++-- 7 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 src/api/api.v3.ncrunchsolution 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 @@ + + + True + True + + \ 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 set => this.Set((int)WixBundleExePackageSymbolFields.ExeProtocol, value); } - public bool Repairable => !String.IsNullOrEmpty(this.RepairCommand); + public bool Repairable => this.RepairCommand != null; + + public bool Uninstallable => this.UninstallCommand != null; } } 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 section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) { - ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), + ComponentId = String.Empty, DirectoryRef = "TestFolder", Location = ComponentLocation.Either, + KeyPath = null, }); var intermediate = new Intermediate("TestIntermediate", IntermediateLevels.Compiled, new[] { section }, null); @@ -50,8 +51,10 @@ namespace WixToolsetTest.Data Assert.Equal("TestComponent", symbol.Id.Id); Assert.Equal(AccessModifier.Global, symbol.Id.Access); + Assert.Equal(String.Empty, symbol.ComponentId); Assert.Equal("TestFolder", symbol.DirectoryRef); Assert.Equal(ComponentLocation.Either, symbol.Location); + Assert.Null(symbol.KeyPath); } finally { 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 writer.WriteAttributeString("DetectCondition", exePackage.DetectCondition); writer.WriteAttributeString("InstallArguments", exePackage.InstallCommand); writer.WriteAttributeString("UninstallArguments", exePackage.UninstallCommand); + writer.WriteAttributeString("Uninstallable", exePackage.Uninstallable ? "yes" : "no"); writer.WriteAttributeString("RepairArguments", exePackage.RepairCommand); writer.WriteAttributeString("Repairable", exePackage.Repairable ? "yes" : "no"); 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 { "ExePackage", new List { "CacheId", "InstallSize", "Size" } }, }; Assert.Equal(2, exePackageElements.Count); - Assert.Equal("", exePackageElements[0].GetTestXml(ignoreAttributesByElementName)); - Assert.Equal("", exePackageElements[1].GetTestXml(ignoreAttributesByElementName)); + Assert.Equal("", exePackageElements[0].GetTestXml(ignoreAttributesByElementName)); + Assert.Equal("", exePackageElements[1].GetTestXml(ignoreAttributesByElementName)); } } 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 { "ExePackage", new List { "CacheId", "InstallSize", "Size" } }, }; Assert.Equal(1, exePackageElements.Count); - Assert.Equal("", exePackageElements[0].GetTestXml(ignoreAttributesByElementName)); + Assert.Equal("", exePackageElements[0].GetTestXml(ignoreAttributesByElementName)); var payloadElements = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload[@Id='burn.exe']"); 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 @@ - + - + -- cgit v1.2.3-55-g6feb