aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-02-10 16:12:33 -0600
committerSean Hall <r.sean.hall@gmail.com>2021-02-10 16:21:31 -0600
commit12db1999ea040ea0b1a51b1dfb5c5f92fc8087c4 (patch)
tree40c7b6b7b88618f22ef903ace0a845b2b34e404d
parent3588e1453240ca59ead8b5f8e63cdb8989bf8f84 (diff)
downloadwix-12db1999ea040ea0b1a51b1dfb5c5f92fc8087c4.tar.gz
wix-12db1999ea040ea0b1a51b1dfb5c5f92fc8087c4.tar.bz2
wix-12db1999ea040ea0b1a51b1dfb5c5f92fc8087c4.zip
SlipstreamMsp belongs under the MsiPackage, not the MspPackage.
-rw-r--r--src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs2
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs27
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/BundleA/Bundle.wxs10
3 files changed, 38 insertions, 1 deletions
diff --git a/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs b/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs
index d12f00d1..994e02f8 100644
--- a/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs
+++ b/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs
@@ -332,7 +332,7 @@ namespace WixToolset.Core.Burn.Bundles
332 var msiPropertiesByPackage = this.Section.Symbols.OfType<WixBundleMsiPropertySymbol>().ToLookup(r => r.PackageRef); 332 var msiPropertiesByPackage = this.Section.Symbols.OfType<WixBundleMsiPropertySymbol>().ToLookup(r => r.PackageRef);
333 var payloadsByPackage = this.Payloads.Values.ToLookup(p => p.PackageRef); 333 var payloadsByPackage = this.Payloads.Values.ToLookup(p => p.PackageRef);
334 var relatedPackagesByPackage = this.Section.Symbols.OfType<WixBundleRelatedPackageSymbol>().ToLookup(r => r.PackageRef); 334 var relatedPackagesByPackage = this.Section.Symbols.OfType<WixBundleRelatedPackageSymbol>().ToLookup(r => r.PackageRef);
335 var slipstreamMspsByPackage = this.Section.Symbols.OfType<WixBundleSlipstreamMspSymbol>().ToLookup(r => r.MspPackageRef); 335 var slipstreamMspsByPackage = this.Section.Symbols.OfType<WixBundleSlipstreamMspSymbol>().ToLookup(r => r.TargetPackageRef);
336 var exitCodesByPackage = this.Section.Symbols.OfType<WixBundlePackageExitCodeSymbol>().ToLookup(r => r.ChainPackageId); 336 var exitCodesByPackage = this.Section.Symbols.OfType<WixBundlePackageExitCodeSymbol>().ToLookup(r => r.ChainPackageId);
337 var commandLinesByPackage = this.Section.Symbols.OfType<WixBundlePackageCommandLineSymbol>().ToLookup(r => r.WixBundlePackageRef); 337 var commandLinesByPackage = this.Section.Symbols.OfType<WixBundlePackageCommandLineSymbol>().ToLookup(r => r.WixBundlePackageRef);
338 338
diff --git a/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs b/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs
index f1d0ea58..dda4ca28 100644
--- a/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs
@@ -83,6 +83,33 @@ namespace WixToolsetTest.CoreIntegration
83 } 83 }
84 } 84 }
85 85
86 [Fact]
87 public void CanBuildBundleWithSlipstreamPatch()
88 {
89 var folder = TestData.Get(@"TestData\PatchSingle");
90
91 using (var fs = new DisposableFileSystem())
92 {
93 var tempFolder = fs.GetFolder();
94
95 var baselinePdb = BuildMsi("Baseline.msi", folder, tempFolder, "1.0.0", "1.0.0", "1.0.0");
96 var update1Pdb = BuildMsi("Update.msi", folder, tempFolder, "1.0.1", "1.0.1", "1.0.1");
97 var patchPdb = BuildMsp("Patch1.msp", folder, tempFolder, "1.0.1");
98 var bundleAPdb = BuildBundle("BundleA.exe", Path.Combine(folder, "BundleA"), tempFolder);
99
100 using (var wixOutput = WixOutput.Read(bundleAPdb))
101 {
102 var manifestData = wixOutput.GetData(BurnConstants.BurnManifestWixOutputStreamName);
103 var doc = new XmlDocument();
104 doc.LoadXml(manifestData);
105 var nsmgr = BundleExtractor.GetBurnNamespaceManager(doc, "w");
106 var slipstreamMspNodes = doc.SelectNodes("/w:BurnManifest/w:Chain/w:MsiPackage/w:SlipstreamMsp", nsmgr);
107 Assert.Equal(1, slipstreamMspNodes.Count);
108 Assert.Equal("<SlipstreamMsp Id='PatchA' />", slipstreamMspNodes[0].GetTestXml());
109 }
110 }
111 }
112
86 private static void VerifyPatchTargetCodes(string pdbPath, string[] expected) 113 private static void VerifyPatchTargetCodes(string pdbPath, string[] expected)
87 { 114 {
88 using (var wixOutput = WixOutput.Read(pdbPath)) 115 using (var wixOutput = WixOutput.Read(pdbPath))
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/BundleA/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/BundleA/Bundle.wxs
new file mode 100644
index 00000000..bc460636
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/BundleA/Bundle.wxs
@@ -0,0 +1,10 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <PackageGroup Id="BundlePackages">
4 <MsiPackage Id="PackageA" SourceFile="Baseline.msi">
5 <SlipstreamMsp Id="PatchA" />
6 </MsiPackage>
7 <MspPackage Id="PatchA" SourceFile="Patch1.msp" />
8 </PackageGroup>
9 </Fragment>
10</Wix>