aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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>