Use TupleIdIsPrimaryKey.
Sean Hall committed
Apr 3, 2020 at 11:38 UTC
11112ebcdf97d4fa53e34d9dfe48410ff2378435
7 files changed
+13
-41
src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs
+2
-22
@@ -64,10 +64,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind
64
this.AddAssemblyTuple((AssemblyTuple)tuple);
65
break;
66
67
- case TupleDefinitionType.Binary:
68
- this.AddTupleDefaultly(tuple, idIsPrimaryKey: true);
69
- break;
70
-
67
case TupleDefinitionType.BBControl:
68
this.AddBBControlTuple((BBControlTuple)tuple);
69
break;
@@ -112,10 +108,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind
108
this.AddFileTuple((FileTuple)tuple);
109
break;
110
115
- case TupleDefinitionType.Icon:
116
- this.AddTupleDefaultly(tuple, idIsPrimaryKey: true);
117
- break;
118
-
111
case TupleDefinitionType.IniFile:
112
this.AddIniFileTuple((IniFileTuple)tuple);
113
break;
@@ -144,10 +136,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind
136
this.AddMsiServiceConfigFailureActionsTuple((MsiServiceConfigFailureActionsTuple)tuple);
137
break;
138
147
- case TupleDefinitionType.MsiShortcutProperty:
148
- this.AddTupleDefaultly(tuple, idIsPrimaryKey: true);
149
- break;
150
-
139
case TupleDefinitionType.MoveFile:
140
this.AddMoveFileTuple((MoveFileTuple)tuple);
141
break;
@@ -177,10 +165,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind
165
this.AddRemoveRegistryTuple((RemoveRegistryTuple)tuple);
166
break;
167
180
- case TupleDefinitionType.ReserveCost:
181
- this.AddTupleDefaultly(tuple, idIsPrimaryKey: true);
182
- break;
183
-
168
case TupleDefinitionType.ServiceControl:
169
this.AddServiceControlTuple((ServiceControlTuple)tuple);
170
break;
@@ -192,10 +176,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind
176
case TupleDefinitionType.Shortcut:
177
this.AddShortcutTuple((ShortcutTuple)tuple);
178
break;
195
-
196
- case TupleDefinitionType.Signature:
197
- this.AddTupleDefaultly(tuple, idIsPrimaryKey: true);
198
- break;
179
180
case TupleDefinitionType.SummaryInformation:
181
this.AddTupleDefaultly(tuple, tableName: "_SummaryInformation");
@@ -1070,7 +1050,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
1050
}
1051
}
1052
1073
- private void AddTupleDefaultly(IntermediateTuple tuple, bool idIsPrimaryKey = false, string tableName = null)
1053
+ private void AddTupleDefaultly(IntermediateTuple tuple, string tableName = null)
1054
{
1055
if (!this.TableDefinitions.TryGet(tableName ?? tuple.Definition.Name, out var tableDefinition))
1056
{
@@ -1080,7 +1060,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
1060
var row = this.CreateRow(tuple, tableDefinition);
1061
var rowOffset = 0;
1062
1083
- if (idIsPrimaryKey)
1063
+ if (tableDefinition.TupleIdIsPrimaryKey)
1064
{
1065
row[0] = tuple.Id.Id;
1066
rowOffset = 1;
src/WixToolset.Core/ExtensibilityServices/WindowsInstallerBackendHelper.cs
+2
-4
@@ -10,9 +10,7 @@ namespace WixToolset.Core.ExtensibilityServices
10
11
internal class WindowsInstallerBackendHelper : IWindowsInstallerBackendHelper
12
{
13
- public bool TryAddTupleToOutputMatchingTableDefinitions(IntermediateTuple tuple, WindowsInstallerData output, IEnumerable<TableDefinition> tableDefinitions) => this.TryAddTupleToOutputMatchingTableDefinitions(tuple, output, tableDefinitions, false);
14
-
15
- public bool TryAddTupleToOutputMatchingTableDefinitions(IntermediateTuple tuple, WindowsInstallerData output, IEnumerable<TableDefinition> tableDefinitions, bool columnZeroIsId)
13
+ public bool TryAddTupleToOutputMatchingTableDefinitions(IntermediateTuple tuple, WindowsInstallerData output, IEnumerable<TableDefinition> tableDefinitions)
14
{
15
var tableDefinition = tableDefinitions.FirstOrDefault(t => t.TupleDefinitionName == tuple.Definition.Name);
16
@@ -25,7 +23,7 @@ namespace WixToolset.Core.ExtensibilityServices
23
var row = table.CreateRow(tuple.SourceLineNumbers);
24
var rowOffset = 0;
25
28
- if (columnZeroIsId)
26
+ if (tableDefinition.TupleIdIsPrimaryKey)
27
{
28
row[0] = tuple.Id.Id;
29
rowOffset = 1;
src/test/Example.Extension/ExampleCompilerExtension.cs
+2
-3
@@ -88,9 +88,8 @@ namespace Example.Extension
88
89
if (!this.Messaging.EncounteredError)
90
{
91
- var tuple = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "Example");
92
- tuple.Set(0, id.Id);
93
- tuple.Set(1, value);
91
+ var tuple = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "Example", id);
92
+ tuple.Set(0, value);
93
}
94
}
95
src/test/Example.Extension/ExampleTuple.cs
+1
-2
@@ -1,4 +1,4 @@
1
-// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
1
+// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3
namespace Example.Extension
4
{
@@ -6,7 +6,6 @@ namespace Example.Extension
6
7
public enum ExampleTupleFields
8
{
9
- Example,
9
Value,
10
}
11
src/test/Example.Extension/ExampleTupleDefinitions.cs
-1
@@ -13,7 +13,6 @@ namespace Example.Extension
13
ExampleName,
14
new[]
15
{
16
- new IntermediateFieldDefinition(nameof(ExampleTupleFields.Example), IntermediateFieldType.String),
16
new IntermediateFieldDefinition(nameof(ExampleTupleFields.Value), IntermediateFieldType.String),
17
},
18
typeof(ExampleTuple));
src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
+2
-3
@@ -63,9 +63,8 @@ namespace WixToolsetTest.CoreIntegration
63
Assert.Equal(@"example.txt", fileTuple[FileTupleFields.Source].PreviousValue.AsPath().Path);
64
65
var example = section.Tuples.Where(t => t.Definition.Type == TupleDefinitionType.MustBeFromAnExtension).Single();
66
- Assert.Null(example.Id?.Id);
67
- Assert.Equal("Foo", example[0].AsString());
68
- Assert.Equal("Bar", example[1].AsString());
66
+ Assert.Equal("Foo", example.Id?.Id);
67
+ Assert.Equal("Bar", example[0].AsString());
68
}
69
}
70
src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs
+4
-6
@@ -168,9 +168,8 @@ namespace WixToolsetTest.CoreIntegration
168
Assert.Equal(@"example.txt", fileTuple[FileTupleFields.Source].PreviousValue.AsPath().Path);
169
170
var example = section.Tuples.Where(t => t.Definition.Type == TupleDefinitionType.MustBeFromAnExtension).Single();
171
- Assert.Null(example.Id?.Id);
172
- Assert.Equal("Foo", example[0].AsString());
173
- Assert.Equal("Bar", example[1].AsString());
171
+ Assert.Equal("Foo", example.Id?.Id);
172
+ Assert.Equal("Bar", example[0].AsString());
173
}
174
}
175
@@ -232,9 +231,8 @@ namespace WixToolsetTest.CoreIntegration
231
Assert.Equal(@"other.txt", fileTuples[1][FileTupleFields.Source].PreviousValue.AsPath().Path);
232
233
var examples = section.Tuples.Where(t => t.Definition.Type == TupleDefinitionType.MustBeFromAnExtension).ToArray();
235
- Assert.Equal(new string[] { null, null }, examples.Select(t => t.Id?.Id).ToArray());
236
- Assert.Equal(new[] { "Foo", "Other" }, examples.Select(t => t.AsString(0)).ToArray());
237
- Assert.Equal(new[] { "Bar", "Value" }, examples.Select(t => t[1].AsString()).ToArray());
234
+ Assert.Equal(new string[] { "Foo", "Other" }, examples.Select(t => t.Id?.Id).ToArray());
235
+ Assert.Equal(new[] { "Bar", "Value" }, examples.Select(t => t[0].AsString()).ToArray());
236
}
237
}
238
}