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"));