@joebigelow / wix / commits / 760e7eba

Fix handling of MediaTemplate/@CompressionLevel

Rob Mensching committed Dec 7, 2017 at 17:04 UTC 760e7ebaa490ea6e1a20c9e127de5024d44a3fea
2 files changed +29 -13
src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs
+28 -12
@@ -66,6 +66,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind
66 // Ignored.
67 break;
68
69 + case TupleDefinitionType.WixMediaTemplate:
70 + this.AddWixMediaTemplateTuple((WixMediaTemplateTuple)tuple, output);
71 + break;
72 +
73 case TupleDefinitionType.MustBeFromAnExtension:
74 this.AddTupleFromExtension(tuple, output);
75 break;
@@ -126,11 +130,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind
130 row.Value = tuple.Value;
131 }
132
129 - private void AddWixActionTuple(WixActionTuple actionRow, Output output)
133 + private void AddWixActionTuple(WixActionTuple tuple, Output output)
134 {
135 // Get the table definition for the action (and ensure the proper table exists for a module).
136 TableDefinition sequenceTableDefinition = null;
133 - switch (actionRow.SequenceTable)
137 + switch (tuple.SequenceTable)
138 {
139 case SequenceTable.AdminExecuteSequence:
140 if (OutputType.Module == output.Type)
@@ -191,31 +195,43 @@ namespace WixToolset.Core.WindowsInstaller.Bind
195
196 // create the action sequence row in the output
197 var sequenceTable = output.EnsureTable(sequenceTableDefinition);
194 - var row = sequenceTable.CreateRow(actionRow.SourceLineNumbers);
198 + var row = sequenceTable.CreateRow(tuple.SourceLineNumbers);
199
200 if (SectionType.Module == this.Section.Type)
201 {
198 - row[0] = actionRow.Action;
199 - if (0 != actionRow.Sequence)
202 + row[0] = tuple.Action;
203 + if (0 != tuple.Sequence)
204 {
201 - row[1] = actionRow.Sequence;
205 + row[1] = tuple.Sequence;
206 }
207 else
208 {
205 - bool after = (null == actionRow.Before);
206 - row[2] = after ? actionRow.After : actionRow.Before;
209 + bool after = (null == tuple.Before);
210 + row[2] = after ? tuple.After : tuple.Before;
211 row[3] = after ? 1 : 0;
212 }
209 - row[4] = actionRow.Condition;
213 + row[4] = tuple.Condition;
214 }
215 else
216 {
213 - row[0] = actionRow.Action;
214 - row[1] = actionRow.Condition;
215 - row[2] = actionRow.Sequence;
217 + row[0] = tuple.Action;
218 + row[1] = tuple.Condition;
219 + row[2] = tuple.Sequence;
220 }
221 }
222
223 + private void AddWixMediaTemplateTuple(WixMediaTemplateTuple tuple, Output output)
224 + {
225 + var table = output.EnsureTable(this.TableDefinitions["WixMediaTemplate"]);
226 + var row = (WixMediaTemplateRow)table.CreateRow(tuple.SourceLineNumbers);
227 + row.CabinetTemplate = tuple.CabinetTemplate;
228 + row.CompressionLevel = tuple.CompressionLevel;
229 + row.DiskPrompt = tuple.DiskPrompt;
230 + row.VolumeLabel = tuple.VolumeLabel;
231 + row.MaximumUncompressedMediaSize = tuple.MaximumUncompressedMediaSize;
232 + row.MaximumCabinetSizeForLargeFileSplitting = tuple.MaximumCabinetSizeForLargeFileSplitting;
233 + }
234 +
235 private void AddTupleFromExtension(IntermediateTuple tuple, Output output)
236 {
237 foreach (var extension in this.BackendExtensions)
src/test/WixToolsetTest.CoreIntegration/ProgramFixture.cs
+1 -1
@@ -73,7 +73,7 @@ namespace WixToolsetTest.CoreIntegration
73 Assert.Equal(0, result);
74
75 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
76 - Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\example.cab")));
76 + Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\cab1.cab")));
77 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.wixpdb")));
78
79 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wir"));