diff options
author | Rob Mensching <rob@firegiant.com> | 2017-12-06 11:40:44 -0800 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2017-12-06 11:40:44 -0800 |
commit | b1e662bd480241ea914f0f3d6bd174d9ffd03f5f (patch) | |
tree | aeaaca9fa9054006e5c190b7256bb57f1ff342b6 /src | |
parent | 5ba862bfa618c89a563d555e8ce7b44a904df406 (diff) | |
download | wix-b1e662bd480241ea914f0f3d6bd174d9ffd03f5f.tar.gz wix-b1e662bd480241ea914f0f3d6bd174d9ffd03f5f.tar.bz2 wix-b1e662bd480241ea914f0f3d6bd174d9ffd03f5f.zip |
Fix cab creation using explicit Media element
Diffstat (limited to 'src')
4 files changed, 13 insertions, 15 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs index f426b96d..1f2cee74 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs | |||
@@ -58,7 +58,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
58 | var mediaTemplateTable = this.Section.Tuples.OfType<WixMediaTemplateTuple>().ToList(); | 58 | var mediaTemplateTable = this.Section.Tuples.OfType<WixMediaTemplateTuple>().ToList(); |
59 | 59 | ||
60 | // If both tables are authored, it is an error. | 60 | // If both tables are authored, it is an error. |
61 | if ((mediaTemplateTable != null && mediaTemplateTable.Count > 0) && (mediaTable != null && mediaTable.Count > 1)) | 61 | if (mediaTemplateTable.Count > 0 && mediaTable.Count > 1) |
62 | { | 62 | { |
63 | throw new WixException(WixErrors.MediaTableCollision(null)); | 63 | throw new WixException(WixErrors.MediaTableCollision(null)); |
64 | } | 64 | } |
@@ -73,7 +73,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
73 | 73 | ||
74 | filesByCabinetMedia.Add(mergeModuleMediaRow, new List<FileFacade>(this.FileFacades)); | 74 | filesByCabinetMedia.Add(mergeModuleMediaRow, new List<FileFacade>(this.FileFacades)); |
75 | } | 75 | } |
76 | else if (null == mediaTemplateTable) | 76 | else if (mediaTemplateTable.Count == 0) |
77 | { | 77 | { |
78 | this.ManuallyAssignFiles(mediaTable, this.FileFacades, filesByCabinetMedia, mediaRows, uncompressedFiles); | 78 | this.ManuallyAssignFiles(mediaTable, this.FileFacades, filesByCabinetMedia, mediaRows, uncompressedFiles); |
79 | } | 79 | } |
@@ -266,8 +266,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
266 | // When building a product, if the current file is not to be compressed or if | 266 | // When building a product, if the current file is not to be compressed or if |
267 | // the package set not to be compressed, don't cab it. | 267 | // the package set not to be compressed, don't cab it. |
268 | if (SectionType.Product == this.Section.Type && | 268 | if (SectionType.Product == this.Section.Type && |
269 | (!facade.File.Compressed.Value || | 269 | ((!facade.File.Compressed.HasValue && !this.FilesCompressed) || |
270 | (!facade.File.Compressed.HasValue && !this.FilesCompressed))) | 270 | (facade.File.Compressed.HasValue && !facade.File.Compressed.Value))) |
271 | { | 271 | { |
272 | uncompressedFiles.Add(facade); | 272 | uncompressedFiles.Add(facade); |
273 | } | 273 | } |
diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs index 1c1c2f0a..ac3f3fe1 100644 --- a/src/WixToolset.Core/Compiler.cs +++ b/src/WixToolset.Core/Compiler.cs | |||
@@ -7361,8 +7361,7 @@ namespace WixToolset.Core | |||
7361 | // add the row to the section | 7361 | // add the row to the section |
7362 | if (!this.Core.EncounteredError) | 7362 | if (!this.Core.EncounteredError) |
7363 | { | 7363 | { |
7364 | var mediaRow = (MediaTuple)this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.Media); | 7364 | var mediaRow = (MediaTuple)this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.Media, new Identifier(id, AccessModifier.Public)); |
7365 | mediaRow.DiskId = id; | ||
7366 | mediaRow.LastSequence = 0; // this is set in the binder | 7365 | mediaRow.LastSequence = 0; // this is set in the binder |
7367 | mediaRow.DiskPrompt = diskPrompt; | 7366 | mediaRow.DiskPrompt = diskPrompt; |
7368 | mediaRow.Cabinet = cabinet; | 7367 | mediaRow.Cabinet = cabinet; |
diff --git a/src/test/WixToolsetTest.CoreIntegration/ProgramFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ProgramFixture.cs index 6644fd33..d99f53ec 100644 --- a/src/test/WixToolsetTest.CoreIntegration/ProgramFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/ProgramFixture.cs | |||
@@ -40,9 +40,9 @@ namespace WixToolsetTest.CoreIntegration | |||
40 | Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\MsiPackage\test.txt"))); | 40 | Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\MsiPackage\test.txt"))); |
41 | 41 | ||
42 | var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wir")); | 42 | var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wir")); |
43 | Assert.Single(intermediate.Sections); | 43 | var section = intermediate.Sections.Single(); |
44 | 44 | ||
45 | var wixFile = intermediate.Sections.SelectMany(s => s.Tuples).OfType<WixFileTuple>().Single(); | 45 | var wixFile = section.Tuples.OfType<WixFileTuple>().Single(); |
46 | Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path); | 46 | Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path); |
47 | Assert.Equal(@"test.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path); | 47 | Assert.Equal(@"test.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path); |
48 | } | 48 | } |
@@ -72,13 +72,13 @@ namespace WixToolsetTest.CoreIntegration | |||
72 | Assert.Equal(0, result); | 72 | Assert.Equal(0, result); |
73 | 73 | ||
74 | Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi"))); | 74 | Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi"))); |
75 | Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\example.cab"))); | ||
75 | Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb"))); | 76 | Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb"))); |
76 | Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\MsiPackage\test.txt"))); | ||
77 | 77 | ||
78 | var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wir")); | 78 | var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wir")); |
79 | Assert.Single(intermediate.Sections); | 79 | var section = intermediate.Sections.Single(); |
80 | 80 | ||
81 | var wixFile = intermediate.Sections.SelectMany(s => s.Tuples).OfType<WixFileTuple>().Single(); | 81 | var wixFile = section.Tuples.OfType<WixFileTuple>().Single(); |
82 | Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path); | 82 | Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path); |
83 | Assert.Equal(@"test.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path); | 83 | Assert.Equal(@"test.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path); |
84 | } | 84 | } |
@@ -110,9 +110,9 @@ namespace WixToolsetTest.CoreIntegration | |||
110 | Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb"))); | 110 | Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb"))); |
111 | 111 | ||
112 | var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wir")); | 112 | var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wir")); |
113 | Assert.Single(intermediate.Sections); | 113 | var section = intermediate.Sections.Single(); |
114 | 114 | ||
115 | var wixFile = intermediate.Sections.SelectMany(s => s.Tuples).OfType<WixFileTuple>().Single(); | 115 | var wixFile = section.Tuples.OfType<WixFileTuple>().Single(); |
116 | Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path); | 116 | Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path); |
117 | Assert.Equal(@"test.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path); | 117 | Assert.Equal(@"test.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path); |
118 | } | 118 | } |
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs index 3f47d01d..87db9851 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs | |||
@@ -4,8 +4,7 @@ | |||
4 | <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> | 4 | <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> |
5 | 5 | ||
6 | <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> | 6 | <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> |
7 | <!--<MediaTemplate />--> | 7 | <Media Id="1" Cabinet="example.cab" /> |
8 | <Media Id="1" /> | ||
9 | 8 | ||
10 | <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> | 9 | <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> |
11 | <ComponentGroupRef Id="ProductComponents" /> | 10 | <ComponentGroupRef Id="ProductComponents" /> |