Add support for long fields and fix up Bundle and many other tuples
Rob Mensching committed
Oct 7, 2019 at 07:32 UTC
cece10e037c6daacc8d2def1a9057882aec47fe4
39 files changed
+761
-976
src/WixToolset.Data/BundleApprovedExeForElevationAttributes.cs
deleted
-16
@@ -1,16 +0,0 @@
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 WixToolset.Data
4
-{
5
- using System;
6
-
7
- /// <summary>
8
- /// Attributes available for an ApprovedExeForElevation.
9
- /// </summary>
10
- [Flags]
11
- public enum BundleApprovedExeForElevationAttributes : int
12
- {
13
- None = 0x0,
14
- Win64 = 0x1,
15
- }
16
-}
src/WixToolset.Data/Burn/BurnConstants.cs
new
+19
@@ -0,0 +1,19 @@
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 WixToolset.Data.Burn
4
+{
5
+ public static class BurnConstants
6
+ {
7
+ public const string BurnUXContainerName = "WixUXContainer";
8
+ public const string BurnDefaultAttachedContainerName = "WixAttachedContainer";
9
+ public const string BundleLayoutOnlyPayloadsName = "BundleLayoutOnlyPayloads";
10
+
11
+ public const string BootstrapperApplicationDataTupleDefinitionTag = "WixBootstrapperApplicationData";
12
+
13
+ // The following constants must stay in sync with src\burn\engine\core.h
14
+ public const string BURN_BUNDLE_NAME = "WixBundleName";
15
+ public const string BURN_BUNDLE_ORIGINAL_SOURCE = "WixBundleOriginalSource";
16
+ public const string BURN_BUNDLE_ORIGINAL_SOURCE_FOLDER = "WixBundleOriginalSourceFolder";
17
+ public const string BURN_BUNDLE_LAST_USED_SOURCE = "WixBundleLastUsedSource";
18
+ }
19
+}
src/WixToolset.Data/IntermediateField.cs
+4
@@ -27,6 +27,10 @@ namespace WixToolset.Data
27
28
public static explicit operator bool? (IntermediateField field) => field.AsNullableBool();
29
30
+ public static explicit operator long(IntermediateField field) => field.AsLargeNumber();
31
+
32
+ public static explicit operator long?(IntermediateField field) => field.AsNullableLargeNumber();
33
+
34
public static explicit operator int(IntermediateField field) => field.AsNumber();
35
36
public static explicit operator int? (IntermediateField field) => field.AsNullableNumber();
src/WixToolset.Data/IntermediateFieldExtensions.cs
+211
-159
@@ -20,20 +20,21 @@ namespace WixToolset.Data
20
21
switch (field.Definition.Type)
22
{
23
- case IntermediateFieldType.Bool:
24
- return field.Value.AsBool();
23
+ case IntermediateFieldType.Bool:
24
+ return field.Value.AsBool();
25
26
- case IntermediateFieldType.Number:
27
- return field.Value.AsNumber() != 0;
26
+ case IntermediateFieldType.LargeNumber:
27
+ case IntermediateFieldType.Number:
28
+ return field.Value.AsLargeNumber() != 0;
29
29
- case IntermediateFieldType.String:
30
- return !String.IsNullOrEmpty(field.Value.AsString());
30
+ case IntermediateFieldType.String:
31
+ return !String.IsNullOrEmpty(field.Value.AsString());
32
32
- case IntermediateFieldType.Path:
33
- return !String.IsNullOrEmpty(field.Value.AsPath()?.Path);
33
+ case IntermediateFieldType.Path:
34
+ return !String.IsNullOrEmpty(field.Value.AsPath()?.Path);
35
35
- default:
36
- throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean");
36
+ default:
37
+ throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean");
38
}
39
}
40
@@ -46,20 +47,68 @@ namespace WixToolset.Data
47
48
switch (field.Definition.Type)
49
{
49
- case IntermediateFieldType.Bool:
50
- return field.Value.AsBool();
50
+ case IntermediateFieldType.Bool:
51
+ return field.Value.AsBool();
52
52
- case IntermediateFieldType.Number:
53
- return field.Value.AsNumber() != 0;
53
+ case IntermediateFieldType.LargeNumber:
54
+ case IntermediateFieldType.Number:
55
+ return field.Value.AsLargeNumber() != 0;
56
55
- case IntermediateFieldType.String:
56
- return !String.IsNullOrEmpty(field.Value.AsString());
57
+ case IntermediateFieldType.String:
58
+ return !String.IsNullOrEmpty(field.Value.AsString());
59
58
- default:
59
- throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean");
60
+ default:
61
+ throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean");
62
}
63
}
64
65
+ public static long AsLargeNumber(this IntermediateField field)
66
+ {
67
+ if (field == null || field.Value == null || field.Value.Data == null)
68
+ {
69
+ return 0;
70
+ }
71
+
72
+ switch (field.Definition.Type)
73
+ {
74
+ case IntermediateFieldType.Bool:
75
+ return field.Value.AsBool() ? 1 : 0;
76
+
77
+ case IntermediateFieldType.LargeNumber:
78
+ case IntermediateFieldType.Number:
79
+ return field.Value.AsLargeNumber();
80
+
81
+ case IntermediateFieldType.String:
82
+ return Convert.ToInt64(field.Value.AsString());
83
+
84
+ default:
85
+ throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to large number");
86
+ }
87
+ }
88
+
89
+ public static long? AsNullableLargeNumber(this IntermediateField field)
90
+ {
91
+ if (field == null || field.Value == null || field.Value.Data == null)
92
+ {
93
+ return null;
94
+ }
95
+
96
+ switch (field.Definition.Type)
97
+ {
98
+ case IntermediateFieldType.Bool:
99
+ return field.Value.AsBool() ? 1 : 0;
100
+
101
+ case IntermediateFieldType.LargeNumber:
102
+ case IntermediateFieldType.Number:
103
+ return field.Value.AsLargeNumber();
104
+
105
+ case IntermediateFieldType.String:
106
+ return Convert.ToInt64(field.Value.AsString());
107
+
108
+ default:
109
+ throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to large number");
110
+ }
111
+ }
112
113
public static int AsNumber(this IntermediateField field)
114
{
@@ -70,17 +119,18 @@ namespace WixToolset.Data
119
120
switch (field.Definition.Type)
121
{
73
- case IntermediateFieldType.Bool:
74
- return field.Value.AsBool() ? 1 : 0;
122
+ case IntermediateFieldType.Bool:
123
+ return field.Value.AsBool() ? 1 : 0;
124
76
- case IntermediateFieldType.Number:
77
- return field.Value.AsNumber();
125
+ case IntermediateFieldType.LargeNumber:
126
+ case IntermediateFieldType.Number:
127
+ return field.Value.AsNumber();
128
79
- case IntermediateFieldType.String:
80
- return Convert.ToInt32(field.Value.AsString());
129
+ case IntermediateFieldType.String:
130
+ return Convert.ToInt32(field.Value.AsString());
131
82
- default:
83
- throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number");
132
+ default:
133
+ throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number");
134
}
135
}
136
@@ -93,17 +143,18 @@ namespace WixToolset.Data
143
144
switch (field.Definition.Type)
145
{
96
- case IntermediateFieldType.Bool:
97
- return field.Value.AsBool() ? 1 : 0;
146
+ case IntermediateFieldType.Bool:
147
+ return field.Value.AsBool() ? 1 : 0;
148
99
- case IntermediateFieldType.Number:
100
- return field.Value.AsNumber();
149
+ case IntermediateFieldType.LargeNumber:
150
+ case IntermediateFieldType.Number:
151
+ return field.Value.AsNumber();
152
102
- case IntermediateFieldType.String:
103
- return Convert.ToInt32(field.Value.AsString());
153
+ case IntermediateFieldType.String:
154
+ return Convert.ToInt32(field.Value.AsString());
155
105
- default:
106
- throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number");
156
+ default:
157
+ throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number");
158
}
159
}
160
@@ -116,14 +167,14 @@ namespace WixToolset.Data
167
168
switch (field.Definition.Type)
169
{
119
- case IntermediateFieldType.String:
120
- return new IntermediateFieldPathValue { Path = field.Value.AsString() };
170
+ case IntermediateFieldType.String:
171
+ return new IntermediateFieldPathValue { Path = field.Value.AsString() };
172
122
- case IntermediateFieldType.Path:
123
- return field.Value.AsPath();
173
+ case IntermediateFieldType.Path:
174
+ return field.Value.AsPath();
175
125
- default:
126
- throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string");
176
+ default:
177
+ throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string");
178
}
179
}
180
@@ -136,20 +187,21 @@ namespace WixToolset.Data
187
188
switch (field.Definition.Type)
189
{
139
- case IntermediateFieldType.Bool:
140
- return field.Value.AsBool() ? "true" : "false";
190
+ case IntermediateFieldType.Bool:
191
+ return field.Value.AsBool() ? "true" : "false";
192
142
- case IntermediateFieldType.Number:
143
- return field.Value.AsNumber().ToString();
193
+ case IntermediateFieldType.LargeNumber:
194
+ case IntermediateFieldType.Number:
195
+ return field.Value.AsLargeNumber().ToString();
196
145
- case IntermediateFieldType.String:
146
- return field.Value.AsString();
197
+ case IntermediateFieldType.String:
198
+ return field.Value.AsString();
199
148
- case IntermediateFieldType.Path:
149
- return field.Value.AsPath()?.Path;
200
+ case IntermediateFieldType.Path:
201
+ return field.Value.AsPath()?.Path;
202
151
- default:
152
- throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string");
203
+ default:
204
+ throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string");
205
}
206
}
207
@@ -169,27 +221,27 @@ namespace WixToolset.Data
221
222
switch (field.Type)
223
{
172
- case IntermediateFieldType.Bool:
173
- data = value;
174
- break;
224
+ case IntermediateFieldType.Bool:
225
+ data = value;
226
+ break;
227
176
- case IntermediateFieldType.LargeNumber:
177
- data = value ? (long)1 : (long)0;
178
- break;
228
+ case IntermediateFieldType.LargeNumber:
229
+ data = value ? (long)1 : (long)0;
230
+ break;
231
180
- case IntermediateFieldType.Number:
181
- data = value ? 1 : 0;
182
- break;
232
+ case IntermediateFieldType.Number:
233
+ data = value ? 1 : 0;
234
+ break;
235
184
- case IntermediateFieldType.Path:
185
- throw new ArgumentException($"Cannot convert bool '{value}' to a 'Path' field type.", nameof(value));
236
+ case IntermediateFieldType.Path:
237
+ throw new ArgumentException($"Cannot convert bool '{value}' to a 'Path' field type.", nameof(value));
238
187
- case IntermediateFieldType.String:
188
- data = value ? "true" : "false";
189
- break;
239
+ case IntermediateFieldType.String:
240
+ data = value ? "true" : "false";
241
+ break;
242
191
- default:
192
- throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}");
243
+ default:
244
+ throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}");
245
};
246
247
return AssignFieldValue(field, data);
@@ -216,27 +268,27 @@ namespace WixToolset.Data
268
269
switch (field.Type)
270
{
219
- case IntermediateFieldType.Bool:
220
- data = (value != 0);
221
- break;
271
+ case IntermediateFieldType.Bool:
272
+ data = (value != 0);
273
+ break;
274
223
- case IntermediateFieldType.LargeNumber:
224
- data = value;
225
- break;
275
+ case IntermediateFieldType.LargeNumber:
276
+ data = value;
277
+ break;
278
227
- case IntermediateFieldType.Number:
228
- data = (int)value;
229
- break;
279
+ case IntermediateFieldType.Number:
280
+ data = (int)value;
281
+ break;
282
231
- case IntermediateFieldType.Path:
232
- throw new ArgumentException($"Cannot convert large number '{value}' to a 'Path' field type.", nameof(value));
283
+ case IntermediateFieldType.Path:
284
+ throw new ArgumentException($"Cannot convert large number '{value}' to a 'Path' field type.", nameof(value));
285
234
- case IntermediateFieldType.String:
235
- data = value.ToString();
236
- break;
286
+ case IntermediateFieldType.String:
287
+ data = value.ToString();
288
+ break;
289
238
- default:
239
- throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}");
290
+ default:
291
+ throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}");
292
};
293
294
return AssignFieldValue(field, data);
@@ -263,27 +315,27 @@ namespace WixToolset.Data
315
316
switch (field.Type)
317
{
266
- case IntermediateFieldType.Bool:
267
- data = (value != 0);
268
- break;
318
+ case IntermediateFieldType.Bool:
319
+ data = (value != 0);
320
+ break;
321
270
- case IntermediateFieldType.LargeNumber:
271
- data = (long)value;
272
- break;
322
+ case IntermediateFieldType.LargeNumber:
323
+ data = (long)value;
324
+ break;
325
274
- case IntermediateFieldType.Number:
275
- data = value;
276
- break;
326
+ case IntermediateFieldType.Number:
327
+ data = value;
328
+ break;
329
278
- case IntermediateFieldType.Path:
279
- throw new ArgumentException($"Cannot convert number '{value}' to a 'Path' field type.", nameof(value));
330
+ case IntermediateFieldType.Path:
331
+ throw new ArgumentException($"Cannot convert number '{value}' to a 'Path' field type.", nameof(value));
332
281
- case IntermediateFieldType.String:
282
- data = value.ToString();
283
- break;
333
+ case IntermediateFieldType.String:
334
+ data = value.ToString();
335
+ break;
336
285
- default:
286
- throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}");
337
+ default:
338
+ throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}");
339
};
340
341
return AssignFieldValue(field, data);
@@ -315,25 +367,25 @@ namespace WixToolset.Data
367
{
368
switch (field.Type)
369
{
318
- case IntermediateFieldType.Bool:
319
- throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'bool' field type.", nameof(value));
370
+ case IntermediateFieldType.Bool:
371
+ throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'bool' field type.", nameof(value));
372
321
- case IntermediateFieldType.LargeNumber:
322
- throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'large number' field type.", nameof(value));
373
+ case IntermediateFieldType.LargeNumber:
374
+ throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'large number' field type.", nameof(value));
375
324
- case IntermediateFieldType.Number:
325
- throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'number' field type.", nameof(value));
376
+ case IntermediateFieldType.Number:
377
+ throw new ArgumentException($"Cannot convert path '{value.Path}' to a 'number' field type.", nameof(value));
378
327
- case IntermediateFieldType.Path:
328
- data = value;
329
- break;
379
+ case IntermediateFieldType.Path:
380
+ data = value;
381
+ break;
382
331
- case IntermediateFieldType.String:
332
- data = value.Path;
333
- break;
383
+ case IntermediateFieldType.String:
384
+ data = value.Path;
385
+ break;
386
335
- default:
336
- throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}");
387
+ default:
388
+ throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}");
389
};
390
}
391
@@ -356,53 +408,53 @@ namespace WixToolset.Data
408
{
409
switch (field.Type)
410
{
359
- case IntermediateFieldType.Bool:
360
- if (value.Equals("yes", StringComparison.OrdinalIgnoreCase) || value.Equals("true", StringComparison.OrdinalIgnoreCase))
361
- {
362
- data = true;
363
- }
364
- else if (value.Equals("no", StringComparison.OrdinalIgnoreCase) || value.Equals("false", StringComparison.OrdinalIgnoreCase))
365
- {
366
- data = false;
367
- }
368
- else
369
- {
370
- throw new ArgumentException($"Cannot convert string '{value}' to a 'bool' field type.", nameof(value));
371
- }
372
- break;
373
-
374
- case IntermediateFieldType.LargeNumber:
375
- if (Int64.TryParse(value, out var largeNumber))
376
- {
377
- data = largeNumber;
378
- }
379
- else
380
- {
381
- throw new ArgumentException($"Cannot convert string '{value}' to a 'large number' field type.", nameof(value));
382
- }
383
- break;
384
-
385
- case IntermediateFieldType.Number:
386
- if (Int32.TryParse(value, out var number))
387
- {
388
- data = number;
389
- }
390
- else
391
- {
392
- throw new ArgumentException($"Cannot convert string '{value}' to a 'number' field type.", nameof(value));
393
- }
394
- break;
395
-
396
- case IntermediateFieldType.Path:
397
- data = new IntermediateFieldPathValue { Path = value };
398
- break;
399
-
400
- case IntermediateFieldType.String:
401
- data = value;
402
- break;
403
-
404
- default:
405
- throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}");
411
+ case IntermediateFieldType.Bool:
412
+ if (value.Equals("yes", StringComparison.OrdinalIgnoreCase) || value.Equals("true", StringComparison.OrdinalIgnoreCase))
413
+ {
414
+ data = true;
415
+ }
416
+ else if (value.Equals("no", StringComparison.OrdinalIgnoreCase) || value.Equals("false", StringComparison.OrdinalIgnoreCase))
417
+ {
418
+ data = false;
419
+ }
420
+ else
421
+ {
422
+ throw new ArgumentException($"Cannot convert string '{value}' to a 'bool' field type.", nameof(value));
423
+ }
424
+ break;
425
+
426
+ case IntermediateFieldType.LargeNumber:
427
+ if (Int64.TryParse(value, out var largeNumber))
428
+ {
429
+ data = largeNumber;
430
+ }
431
+ else
432
+ {
433
+ throw new ArgumentException($"Cannot convert string '{value}' to a 'large number' field type.", nameof(value));
434
+ }
435
+ break;
436
+
437
+ case IntermediateFieldType.Number:
438
+ if (Int32.TryParse(value, out var number))
439
+ {
440
+ data = number;
441
+ }
442
+ else
443
+ {
444
+ throw new ArgumentException($"Cannot convert string '{value}' to a 'number' field type.", nameof(value));
445
+ }
446
+ break;
447
+
448
+ case IntermediateFieldType.Path:
449
+ data = new IntermediateFieldPathValue { Path = value };
450
+ break;
451
+
452
+ case IntermediateFieldType.String:
453
+ data = value;
454
+ break;
455
+
456
+ default:
457
+ throw new ArgumentOutOfRangeException(nameof(value), $"Unknown intermediate field type: {value.GetType()}");
458
};
459
}
460
src/WixToolset.Data/IntermediateFieldValueExtensions.cs
+39
@@ -45,6 +45,45 @@ namespace WixToolset.Data
45
return (bool)value.Data;
46
}
47
48
+ public static long AsLargeNumber(this IntermediateFieldValue value)
49
+ {
50
+ var result = value.AsNullableLargeNumber();
51
+ return result ?? 0;
52
+ }
53
+
54
+ public static long? AsNullableLargeNumber(this IntermediateFieldValue value)
55
+ {
56
+ if (value?.Data == null)
57
+ {
58
+ return null;
59
+ }
60
+ else if (value.Data is int n)
61
+ {
62
+ return n;
63
+ }
64
+ else if (value.Data is long l)
65
+ {
66
+ return l;
67
+ }
68
+ else if (value.Data is bool b)
69
+ {
70
+ return b ? 1 : 0;
71
+ }
72
+ else if (value.Data is string s)
73
+ {
74
+ try
75
+ {
76
+ return Convert.ToInt32(s);
77
+ }
78
+ catch (FormatException)
79
+ {
80
+ throw new WixException(ErrorMessages.UnableToConvertFieldToNumber(s));
81
+ }
82
+ }
83
+
84
+ return (long)value.Data;
85
+ }
86
+
87
public static int AsNumber(this IntermediateFieldValue value)
88
{
89
var result = value.AsNullableNumber();
src/WixToolset.Data/Tuples/IconTuple.cs
+2
-2
@@ -35,9 +35,9 @@ namespace WixToolset.Data.Tuples
35
36
public IntermediateField this[IconTupleFields index] => this.Fields[(int)index];
37
38
- public string Data
38
+ public IntermediateFieldPathValue Data
39
{
40
- get => (string)this.Fields[(int)IconTupleFields.Data];
40
+ get => this.Fields[(int)IconTupleFields.Data].AsPath();
41
set => this.Set((int)IconTupleFields.Data, value);
42
}
43
}
src/WixToolset.Data/Tuples/MsiFileHashTuple.cs
-8
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.MsiFileHash,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.FileRef), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.Options), IntermediateFieldType.Number),
14
new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart1), IntermediateFieldType.Number),
15
new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart2), IntermediateFieldType.Number),
@@ -25,7 +24,6 @@ namespace WixToolset.Data.Tuples
24
{
25
public enum MsiFileHashTupleFields
26
{
28
- FileRef,
27
Options,
28
HashPart1,
29
HashPart2,
@@ -45,12 +43,6 @@ namespace WixToolset.Data.Tuples
43
44
public IntermediateField this[MsiFileHashTupleFields index] => this.Fields[(int)index];
45
48
- public string FileRef
49
- {
50
- get => (string)this.Fields[(int)MsiFileHashTupleFields.FileRef];
51
- set => this.Set((int)MsiFileHashTupleFields.FileRef, value);
52
- }
53
-
46
public int Options
47
{
48
get => (int)this.Fields[(int)MsiFileHashTupleFields.Options];
src/WixToolset.Data/Tuples/ProvidesDependencyTuple.cs
new
+84
@@ -0,0 +1,84 @@
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 WixToolset.Data
4
+{
5
+ using WixToolset.Data.Tuples;
6
+
7
+ public static partial class TupleDefinitions
8
+ {
9
+ public static readonly IntermediateTupleDefinition ProvidesDependency = new IntermediateTupleDefinition(
10
+ TupleDefinitionType.ProvidesDependency,
11
+ new[]
12
+ {
13
+ new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.PackageRef), IntermediateFieldType.String),
14
+ new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Key), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Version), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.DisplayName), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Attributes), IntermediateFieldType.Number),
18
+ new IntermediateFieldDefinition(nameof(ProvidesDependencyTupleFields.Imported), IntermediateFieldType.Bool),
19
+ },
20
+ typeof(ProvidesDependencyTuple));
21
+ }
22
+}
23
+
24
+namespace WixToolset.Data.Tuples
25
+{
26
+ public enum ProvidesDependencyTupleFields
27
+ {
28
+ PackageRef,
29
+ Key,
30
+ Version,
31
+ DisplayName,
32
+ Attributes,
33
+ Imported,
34
+ }
35
+
36
+ public class ProvidesDependencyTuple : IntermediateTuple
37
+ {
38
+ public ProvidesDependencyTuple() : base(TupleDefinitions.ProvidesDependency, null, null)
39
+ {
40
+ }
41
+
42
+ public ProvidesDependencyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ProvidesDependency, sourceLineNumber, id)
43
+ {
44
+ }
45
+
46
+ public IntermediateField this[ProvidesDependencyTupleFields index] => this.Fields[(int)index];
47
+
48
+ public string PackageRef
49
+ {
50
+ get => (string)this.Fields[(int)ProvidesDependencyTupleFields.PackageRef];
51
+ set => this.Set((int)ProvidesDependencyTupleFields.PackageRef, value);
52
+ }
53
+
54
+ public string Key
55
+ {
56
+ get => (string)this.Fields[(int)ProvidesDependencyTupleFields.Key];
57
+ set => this.Set((int)ProvidesDependencyTupleFields.Key, value);
58
+ }
59
+
60
+ public string Version
61
+ {
62
+ get => (string)this.Fields[(int)ProvidesDependencyTupleFields.Version];
63
+ set => this.Set((int)ProvidesDependencyTupleFields.Version, value);
64
+ }
65
+
66
+ public string DisplayName
67
+ {
68
+ get => (string)this.Fields[(int)ProvidesDependencyTupleFields.DisplayName];
69
+ set => this.Set((int)ProvidesDependencyTupleFields.DisplayName, value);
70
+ }
71
+
72
+ public int? Attributes
73
+ {
74
+ get => (int?)this.Fields[(int)ProvidesDependencyTupleFields.Attributes];
75
+ set => this.Set((int)ProvidesDependencyTupleFields.Attributes, value);
76
+ }
77
+
78
+ public bool Imported
79
+ {
80
+ get => (bool)this.Fields[(int)ProvidesDependencyTupleFields.Imported];
81
+ set => this.Set((int)ProvidesDependencyTupleFields.Imported, value);
82
+ }
83
+ }
84
+}
src/WixToolset.Data/Tuples/TupleDefinitions.cs
+5
-16
@@ -100,6 +100,7 @@ namespace WixToolset.Data
100
ProgId,
101
Properties,
102
Property,
103
+ ProvidesDependency,
104
PublishComponent,
105
RadioButton,
106
Registry,
@@ -144,7 +145,6 @@ namespace WixToolset.Data
145
WixBundlePatchTargetCode,
146
WixBundlePayload,
147
WixBundlePayloadGroup,
147
- WixBundleProperties,
148
WixBundleRelatedPackage,
149
WixBundleRollbackBoundary,
150
WixBundleSlipstreamMsp,
@@ -159,6 +159,7 @@ namespace WixToolset.Data
159
WixCustomTable,
160
WixDeltaPatchFile,
161
WixDeltaPatchSymbolPaths,
162
+ WixDependencyProvider,
163
WixEnsureTable,
164
WixFeatureGroup,
165
WixFeatureModules,
@@ -171,15 +172,12 @@ namespace WixToolset.Data
172
WixMediaTemplate,
173
WixMerge,
174
WixOrdering,
174
- WixPackageFeatureInfo,
175
- WixPackageProperties,
175
WixPatchBaseline,
176
WixPatchFamilyGroup,
177
WixPatchId,
178
WixPatchMetadata,
179
WixPatchRef,
180
WixPatchTarget,
182
- WixPayloadProperties,
181
WixProductSearch,
182
WixProperty,
183
WixRegistrySearch,
@@ -495,6 +493,9 @@ namespace WixToolset.Data
493
case TupleDefinitionType.PublishComponent:
494
return TupleDefinitions.PublishComponent;
495
496
+ case TupleDefinitionType.ProvidesDependency:
497
+ return TupleDefinitions.ProvidesDependency;
498
+
499
case TupleDefinitionType.RadioButton:
500
return TupleDefinitions.RadioButton;
501
@@ -624,9 +625,6 @@ namespace WixToolset.Data
625
case TupleDefinitionType.WixBundlePayloadGroup:
626
return TupleDefinitions.WixBundlePayloadGroup;
627
627
- case TupleDefinitionType.WixBundleProperties:
628
- return TupleDefinitions.WixBundleProperties;
629
-
628
case TupleDefinitionType.WixBundleRelatedPackage:
629
return TupleDefinitions.WixBundleRelatedPackage;
630
@@ -699,12 +697,6 @@ namespace WixToolset.Data
697
case TupleDefinitionType.WixOrdering:
698
return TupleDefinitions.WixOrdering;
699
702
- case TupleDefinitionType.WixPackageFeatureInfo:
703
- return TupleDefinitions.WixPackageFeatureInfo;
704
-
705
- case TupleDefinitionType.WixPackageProperties:
706
- return TupleDefinitions.WixPackageProperties;
707
-
700
case TupleDefinitionType.WixPatchBaseline:
701
return TupleDefinitions.WixPatchBaseline;
702
@@ -723,9 +715,6 @@ namespace WixToolset.Data
715
case TupleDefinitionType.WixPatchTarget:
716
return TupleDefinitions.WixPatchTarget;
717
726
- case TupleDefinitionType.WixPayloadProperties:
727
- return TupleDefinitions.WixPayloadProperties;
728
-
718
case TupleDefinitionType.WixProductSearch:
719
return TupleDefinitions.WixProductSearch;
720
src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs
+19
-8
@@ -11,7 +11,7 @@ namespace WixToolset.Data
11
new[]
12
{
13
new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Key), IntermediateFieldType.String),
14
- new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Value), IntermediateFieldType.String),
14
+ new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.ValueName), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Attributes), IntermediateFieldType.Number),
16
},
17
typeof(WixApprovedExeForElevationTuple));
@@ -20,13 +20,22 @@ namespace WixToolset.Data
20
21
namespace WixToolset.Data.Tuples
22
{
23
+ using System;
24
+
25
public enum WixApprovedExeForElevationTupleFields
26
{
27
Key,
26
- Value,
28
+ ValueName,
29
Attributes,
30
}
31
32
+ [Flags]
33
+ public enum WixApprovedExeForElevationAttributes
34
+ {
35
+ None = 0x0,
36
+ Win64 = 0x1,
37
+ }
38
+
39
public class WixApprovedExeForElevationTuple : IntermediateTuple
40
{
41
public WixApprovedExeForElevationTuple() : base(TupleDefinitions.WixApprovedExeForElevation, null, null)
@@ -45,16 +54,18 @@ namespace WixToolset.Data.Tuples
54
set => this.Set((int)WixApprovedExeForElevationTupleFields.Key, value);
55
}
56
48
- public string Value
57
+ public string ValueName
58
{
50
- get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Value];
51
- set => this.Set((int)WixApprovedExeForElevationTupleFields.Value, value);
59
+ get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.ValueName];
60
+ set => this.Set((int)WixApprovedExeForElevationTupleFields.ValueName, value);
61
}
62
54
- public BundleApprovedExeForElevationAttributes Attributes
63
+ public WixApprovedExeForElevationAttributes Attributes
64
{
56
- get => (BundleApprovedExeForElevationAttributes)this.Fields[(int)WixApprovedExeForElevationTupleFields.Attributes].AsNumber();
65
+ get => (WixApprovedExeForElevationAttributes)this.Fields[(int)WixApprovedExeForElevationTupleFields.Attributes].AsNumber();
66
set => this.Set((int)WixApprovedExeForElevationTupleFields.Attributes, (int)value);
67
}
68
+
69
+ public bool Win64 => (this.Attributes & WixApprovedExeForElevationAttributes.Win64) == WixApprovedExeForElevationAttributes.Win64;
70
}
60
-}
\ No newline at end of file
71
+}
src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs
+1
-9
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundleCatalog,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.WixBundleCatalog), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.PayloadRef), IntermediateFieldType.String),
14
},
15
typeof(WixBundleCatalogTuple));
@@ -21,7 +20,6 @@ namespace WixToolset.Data.Tuples
20
{
21
public enum WixBundleCatalogTupleFields
22
{
24
- WixBundleCatalog,
23
PayloadRef,
24
}
25
@@ -37,16 +35,10 @@ namespace WixToolset.Data.Tuples
35
36
public IntermediateField this[WixBundleCatalogTupleFields index] => this.Fields[(int)index];
37
40
- public string WixBundleCatalog
41
- {
42
- get => (string)this.Fields[(int)WixBundleCatalogTupleFields.WixBundleCatalog];
43
- set => this.Set((int)WixBundleCatalogTupleFields.WixBundleCatalog, value);
44
- }
45
-
38
public string PayloadRef
39
{
40
get => (string)this.Fields[(int)WixBundleCatalogTupleFields.PayloadRef];
41
set => this.Set((int)WixBundleCatalogTupleFields.PayloadRef, value);
42
}
43
}
52
-}
\ No newline at end of file
44
+}
src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs
+4
-10
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundleExePackage,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.Attributes), IntermediateFieldType.Number),
14
new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.DetectCondition), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.InstallCommand), IntermediateFieldType.String),
@@ -28,7 +27,6 @@ namespace WixToolset.Data.Tuples
27
28
public enum WixBundleExePackageTupleFields
29
{
31
- WixBundlePackageRef,
30
Attributes,
31
DetectCondition,
32
InstallCommand,
@@ -40,7 +38,7 @@ namespace WixToolset.Data.Tuples
38
[Flags]
39
public enum WixBundleExePackageAttributes
40
{
43
- Repairable = 0x1,
41
+ None = 0,
42
}
43
44
public class WixBundleExePackageTuple : IntermediateTuple
@@ -55,12 +53,6 @@ namespace WixToolset.Data.Tuples
53
54
public IntermediateField this[WixBundleExePackageTupleFields index] => this.Fields[(int)index];
55
58
- public string WixBundlePackageRef
59
- {
60
- get => (string)this.Fields[(int)WixBundleExePackageTupleFields.WixBundlePackageRef];
61
- set => this.Set((int)WixBundleExePackageTupleFields.WixBundlePackageRef, value);
62
- }
63
-
56
public WixBundleExePackageAttributes Attributes
57
{
58
get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageTupleFields.Attributes];
@@ -96,5 +88,7 @@ namespace WixToolset.Data.Tuples
88
get => (string)this.Fields[(int)WixBundleExePackageTupleFields.ExeProtocol];
89
set => this.Set((int)WixBundleExePackageTupleFields.ExeProtocol, value);
90
}
91
+
92
+ public bool Repairable => !String.IsNullOrEmpty(this.RepairCommand);
93
}
100
-}
\ No newline at end of file
94
+}
src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs
+9
-9
@@ -10,9 +10,9 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundleMsiFeature,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.WixBundlePackageRef), IntermediateFieldType.String),
13
+ new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.PackageRef), IntermediateFieldType.String),
14
new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Name), IntermediateFieldType.String),
15
- new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Size), IntermediateFieldType.Number),
15
+ new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Size), IntermediateFieldType.LargeNumber),
16
new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Parent), IntermediateFieldType.String),
17
new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Title), IntermediateFieldType.String),
18
new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Description), IntermediateFieldType.String),
@@ -29,7 +29,7 @@ namespace WixToolset.Data.Tuples
29
{
30
public enum WixBundleMsiFeatureTupleFields
31
{
32
- WixBundlePackageRef,
32
+ PackageRef,
33
Name,
34
Size,
35
Parent,
@@ -53,10 +53,10 @@ namespace WixToolset.Data.Tuples
53
54
public IntermediateField this[WixBundleMsiFeatureTupleFields index] => this.Fields[(int)index];
55
56
- public string WixBundlePackageRef
56
+ public string PackageRef
57
{
58
- get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.WixBundlePackageRef];
59
- set => this.Set((int)WixBundleMsiFeatureTupleFields.WixBundlePackageRef, value);
58
+ get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.PackageRef];
59
+ set => this.Set((int)WixBundleMsiFeatureTupleFields.PackageRef, value);
60
}
61
62
public string Name
@@ -65,9 +65,9 @@ namespace WixToolset.Data.Tuples
65
set => this.Set((int)WixBundleMsiFeatureTupleFields.Name, value);
66
}
67
68
- public int Size
68
+ public long Size
69
{
70
- get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Size];
70
+ get => (long)this.Fields[(int)WixBundleMsiFeatureTupleFields.Size];
71
set => this.Set((int)WixBundleMsiFeatureTupleFields.Size, value);
72
}
73
@@ -113,4 +113,4 @@ namespace WixToolset.Data.Tuples
113
set => this.Set((int)WixBundleMsiFeatureTupleFields.Attributes, value);
114
}
115
}
116
-}
\ No newline at end of file
116
+}
src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs
+6
-9
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundleMsiPackage,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.Attributes), IntermediateFieldType.Number),
14
new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductCode), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.UpgradeCode), IntermediateFieldType.String),
@@ -29,7 +28,6 @@ namespace WixToolset.Data.Tuples
28
29
public enum WixBundleMsiPackageTupleFields
30
{
32
- WixBundlePackageRef,
31
Attributes,
32
ProductCode,
33
UpgradeCode,
@@ -45,7 +43,6 @@ namespace WixToolset.Data.Tuples
43
DisplayInternalUI = 0x1,
44
EnableFeatureSelection = 0x4,
45
ForcePerMachine = 0x2,
48
- SuppressLooseFilePayloadGeneration = 0x8,
46
}
47
48
public class WixBundleMsiPackageTuple : IntermediateTuple
@@ -60,12 +57,6 @@ namespace WixToolset.Data.Tuples
57
58
public IntermediateField this[WixBundleMsiPackageTupleFields index] => this.Fields[(int)index];
59
63
- public string WixBundlePackageRef
64
- {
65
- get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.WixBundlePackageRef];
66
- set => this.Set((int)WixBundleMsiPackageTupleFields.WixBundlePackageRef, value);
67
- }
68
-
60
public WixBundleMsiPackageAttributes Attributes
61
{
62
get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageTupleFields.Attributes];
@@ -107,5 +98,11 @@ namespace WixToolset.Data.Tuples
98
get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.Manufacturer];
99
set => this.Set((int)WixBundleMsiPackageTupleFields.Manufacturer, value);
100
}
101
+
102
+ public bool DisplayInternalUI => (this.Attributes & WixBundleMsiPackageAttributes.DisplayInternalUI) == WixBundleMsiPackageAttributes.DisplayInternalUI;
103
+
104
+ public bool EnableFeatureSelection => (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection) == WixBundleMsiPackageAttributes.EnableFeatureSelection;
105
+
106
+ public bool ForcePerMachine => (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine) == WixBundleMsiPackageAttributes.ForcePerMachine;
107
}
108
}
\ No newline at end of file
src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs
+5
-5
@@ -10,7 +10,7 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundleMsiProperty,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.WixBundlePackageRef), IntermediateFieldType.String),
13
+ new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.PackageRef), IntermediateFieldType.String),
14
new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Name), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Value), IntermediateFieldType.String),
16
new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Condition), IntermediateFieldType.String),
@@ -23,7 +23,7 @@ namespace WixToolset.Data.Tuples
23
{
24
public enum WixBundleMsiPropertyTupleFields
25
{
26
- WixBundlePackageRef,
26
+ PackageRef,
27
Name,
28
Value,
29
Condition,
@@ -41,10 +41,10 @@ namespace WixToolset.Data.Tuples
41
42
public IntermediateField this[WixBundleMsiPropertyTupleFields index] => this.Fields[(int)index];
43
44
- public string WixBundlePackageRef
44
+ public string PackageRef
45
{
46
- get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.WixBundlePackageRef];
47
- set => this.Set((int)WixBundleMsiPropertyTupleFields.WixBundlePackageRef, value);
46
+ get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.PackageRef];
47
+ set => this.Set((int)WixBundleMsiPropertyTupleFields.PackageRef, value);
48
}
49
50
public string Name
src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs
+6
-8
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundleMspPackage,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Attributes), IntermediateFieldType.Number),
14
new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.PatchCode), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Manufacturer), IntermediateFieldType.String),
@@ -26,7 +25,6 @@ namespace WixToolset.Data.Tuples
25
26
public enum WixBundleMspPackageTupleFields
27
{
29
- WixBundlePackageRef,
28
Attributes,
29
PatchCode,
30
Manufacturer,
@@ -53,12 +51,6 @@ namespace WixToolset.Data.Tuples
51
52
public IntermediateField this[WixBundleMspPackageTupleFields index] => this.Fields[(int)index];
53
56
- public string WixBundlePackageRef
57
- {
58
- get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.WixBundlePackageRef];
59
- set => this.Set((int)WixBundleMspPackageTupleFields.WixBundlePackageRef, value);
60
- }
61
-
54
public WixBundleMspPackageAttributes Attributes
55
{
56
get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageTupleFields.Attributes];
@@ -82,5 +74,11 @@ namespace WixToolset.Data.Tuples
74
get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchXml];
75
set => this.Set((int)WixBundleMspPackageTupleFields.PatchXml, value);
76
}
77
+
78
+ public bool DisplayInternalUI => (this.Attributes & WixBundleMspPackageAttributes.DisplayInternalUI) == WixBundleMspPackageAttributes.DisplayInternalUI;
79
+
80
+ public bool Slipstream => (this.Attributes & WixBundleMspPackageAttributes.Slipstream) == WixBundleMspPackageAttributes.Slipstream;
81
+
82
+ public bool TargetUnspecified => (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified) == WixBundleMspPackageAttributes.TargetUnspecified;
83
}
84
}
\ No newline at end of file
src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs
-8
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundleMsuPackage,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.WixBundlePackageRef), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.DetectCondition), IntermediateFieldType.String),
14
new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.MsuKB), IntermediateFieldType.String),
15
},
@@ -22,7 +21,6 @@ namespace WixToolset.Data.Tuples
21
{
22
public enum WixBundleMsuPackageTupleFields
23
{
25
- WixBundlePackageRef,
24
DetectCondition,
25
MsuKB,
26
}
@@ -39,12 +37,6 @@ namespace WixToolset.Data.Tuples
37
38
public IntermediateField this[WixBundleMsuPackageTupleFields index] => this.Fields[(int)index];
39
42
- public string WixBundlePackageRef
43
- {
44
- get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.WixBundlePackageRef];
45
- set => this.Set((int)WixBundleMsuPackageTupleFields.WixBundlePackageRef, value);
46
- }
47
-
40
public string DetectCondition
41
{
42
get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.DetectCondition];
src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs
+3
-3
@@ -56,9 +56,9 @@ namespace WixToolset.Data.Tuples
56
set => this.Set((int)WixBundlePackageExitCodeTupleFields.ChainPackageId, value);
57
}
58
59
- public int Code
59
+ public int? Code
60
{
61
- get => (int)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Code];
61
+ get => (int?)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Code];
62
set => this.Set((int)WixBundlePackageExitCodeTupleFields.Code, value);
63
}
64
@@ -68,4 +68,4 @@ namespace WixToolset.Data.Tuples
68
set => this.Set((int)WixBundlePackageExitCodeTupleFields.Behavior, value.ToString());
69
}
70
}
71
-}
\ No newline at end of file
71
+}
src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs
+10
-14
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundlePackage,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.WixChainItemRef), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Type), IntermediateFieldType.String),
14
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.PayloadRef), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Attributes), IntermediateFieldType.Number),
@@ -22,14 +21,14 @@ namespace WixToolset.Data
21
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.LogPathVariable), IntermediateFieldType.String),
22
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackLogPathVariable), IntermediateFieldType.String),
23
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Size), IntermediateFieldType.Number),
25
- new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallSize), IntermediateFieldType.Number),
24
+ new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallSize), IntermediateFieldType.LargeNumber),
25
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Version), IntermediateFieldType.String),
26
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Language), IntermediateFieldType.Number),
27
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.DisplayName), IntermediateFieldType.String),
28
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Description), IntermediateFieldType.String),
29
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundaryRef), IntermediateFieldType.String),
30
new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundaryBackwardRef), IntermediateFieldType.String),
32
- new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Win64), IntermediateFieldType.Number),
31
+ new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Win64), IntermediateFieldType.Bool),
32
},
33
typeof(WixBundlePackageTuple));
34
}
@@ -41,7 +40,6 @@ namespace WixToolset.Data.Tuples
40
41
public enum WixBundlePackageTupleFields
42
{
44
- WixChainItemRef,
43
Type,
44
PayloadRef,
45
Attributes,
@@ -79,6 +77,8 @@ namespace WixToolset.Data.Tuples
77
{
78
Permanent = 0x1,
79
Visible = 0x2,
80
+ PerMachine = 0x4,
81
+ Win64 = 0x8,
82
}
83
84
public class WixBundlePackageTuple : IntermediateTuple
@@ -93,12 +93,6 @@ namespace WixToolset.Data.Tuples
93
94
public IntermediateField this[WixBundlePackageTupleFields index] => this.Fields[(int)index];
95
96
- public string WixChainItemRef
97
- {
98
- get => (string)this.Fields[(int)WixBundlePackageTupleFields.WixChainItemRef];
99
- set => this.Set((int)WixBundlePackageTupleFields.WixChainItemRef, value);
100
- }
101
-
96
public WixBundlePackageType Type
97
{
98
get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageTupleFields.Type], true);
@@ -165,9 +159,9 @@ namespace WixToolset.Data.Tuples
159
set => this.Set((int)WixBundlePackageTupleFields.Size, value);
160
}
161
168
- public int InstallSize
162
+ public long? InstallSize
163
{
170
- get => (int)this.Fields[(int)WixBundlePackageTupleFields.InstallSize];
164
+ get => (long?)this.Fields[(int)WixBundlePackageTupleFields.InstallSize];
165
set => this.Set((int)WixBundlePackageTupleFields.InstallSize, value);
166
}
167
@@ -207,10 +201,12 @@ namespace WixToolset.Data.Tuples
201
set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundaryBackwardRef, value);
202
}
203
210
- public int Win64
204
+ public bool Win64
205
{
212
- get => (int)this.Fields[(int)WixBundlePackageTupleFields.Win64];
206
+ get => (bool)this.Fields[(int)WixBundlePackageTupleFields.Win64];
207
set => this.Set((int)WixBundlePackageTupleFields.Win64, value);
208
}
209
+
210
+ public bool Permanent => (this.Attributes & WixBundlePackageAttributes.Permanent) == WixBundlePackageAttributes.Permanent;
211
}
212
}
\ No newline at end of file
src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs
+31
-9
@@ -10,7 +10,7 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundlePatchTargetCode,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.PackageId), IntermediateFieldType.String),
13
+ new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.PackageRef), IntermediateFieldType.String),
14
new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.TargetCode), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.Attributes), IntermediateFieldType.Number),
16
},
@@ -20,13 +20,31 @@ namespace WixToolset.Data
20
21
namespace WixToolset.Data.Tuples
22
{
23
+ using System;
24
+
25
public enum WixBundlePatchTargetCodeTupleFields
26
{
25
- PackageId,
27
+ PackageRef,
28
TargetCode,
29
Attributes,
30
}
31
32
+ [Flags]
33
+ public enum WixBundlePatchTargetCodeAttributes : int
34
+ {
35
+ None = 0,
36
+
37
+ /// <summary>
38
+ /// The transform targets a specific ProductCode.
39
+ /// </summary>
40
+ TargetsProductCode = 1,
41
+
42
+ /// <summary>
43
+ /// The transform targets a specific UpgradeCode.
44
+ /// </summary>
45
+ TargetsUpgradeCode = 2,
46
+ }
47
+
48
public class WixBundlePatchTargetCodeTuple : IntermediateTuple
49
{
50
public WixBundlePatchTargetCodeTuple() : base(TupleDefinitions.WixBundlePatchTargetCode, null, null)
@@ -39,10 +57,10 @@ namespace WixToolset.Data.Tuples
57
58
public IntermediateField this[WixBundlePatchTargetCodeTupleFields index] => this.Fields[(int)index];
59
42
- public string PackageId
60
+ public string PackageRef
61
{
44
- get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.PackageId];
45
- set => this.Set((int)WixBundlePatchTargetCodeTupleFields.PackageId, value);
62
+ get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.PackageRef];
63
+ set => this.Set((int)WixBundlePatchTargetCodeTupleFields.PackageRef, value);
64
}
65
66
public string TargetCode
@@ -51,10 +69,14 @@ namespace WixToolset.Data.Tuples
69
set => this.Set((int)WixBundlePatchTargetCodeTupleFields.TargetCode, value);
70
}
71
54
- public int Attributes
72
+ public WixBundlePatchTargetCodeAttributes Attributes
73
{
56
- get => (int)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.Attributes];
57
- set => this.Set((int)WixBundlePatchTargetCodeTupleFields.Attributes, value);
74
+ get => (WixBundlePatchTargetCodeAttributes)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.Attributes].AsNumber();
75
+ set => this.Set((int)WixBundlePatchTargetCodeTupleFields.Attributes, (int)value);
76
}
77
+
78
+ public bool TargetsProductCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsProductCode) == WixBundlePatchTargetCodeAttributes.TargetsProductCode;
79
+
80
+ public bool TargetsUpgradeCode => (this.Attributes & WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode) == WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode;
81
}
60
-}
\ No newline at end of file
82
+}
src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs
+17
-25
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundlePayload,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.WixBundlePayload), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Name), IntermediateFieldType.String),
14
new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.SourceFile), IntermediateFieldType.Path),
15
new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.DownloadUrl), IntermediateFieldType.String),
@@ -26,10 +25,10 @@ namespace WixToolset.Data
25
new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Thumbprint), IntermediateFieldType.String),
26
new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.CatalogRef), IntermediateFieldType.String),
27
new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ContainerRef), IntermediateFieldType.String),
29
- new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Package), IntermediateFieldType.String),
28
+ new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.PackageRef), IntermediateFieldType.String),
29
new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ContentFile), IntermediateFieldType.Bool),
30
new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.EmbeddedId), IntermediateFieldType.String),
32
- new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.LayoutOnly), IntermediateFieldType.Number),
31
+ new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.LayoutOnly), IntermediateFieldType.Bool),
32
new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Packaging), IntermediateFieldType.Number),
33
new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ParentPackagePayloadRef), IntermediateFieldType.String),
34
},
@@ -43,7 +42,6 @@ namespace WixToolset.Data.Tuples
42
43
public enum WixBundlePayloadTupleFields
44
{
46
- WixBundlePayload,
45
Name,
46
SourceFile,
47
DownloadUrl,
@@ -59,7 +57,7 @@ namespace WixToolset.Data.Tuples
57
Thumbprint,
58
CatalogRef,
59
ContainerRef,
62
- Package,
60
+ PackageRef,
61
ContentFile,
62
EmbeddedId,
63
LayoutOnly,
@@ -79,21 +77,15 @@ namespace WixToolset.Data.Tuples
77
78
public IntermediateField this[WixBundlePayloadTupleFields index] => this.Fields[(int)index];
79
82
- public string WixBundlePayload
83
- {
84
- get => (string)this.Fields[(int)WixBundlePayloadTupleFields.WixBundlePayload];
85
- set => this.Set((int)WixBundlePayloadTupleFields.WixBundlePayload, value);
86
- }
87
-
80
public string Name
81
{
82
get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Name];
83
set => this.Set((int)WixBundlePayloadTupleFields.Name, value);
84
}
85
94
- public string SourceFile
86
+ public IntermediateFieldPathValue SourceFile
87
{
96
- get => (string)this.Fields[(int)WixBundlePayloadTupleFields.SourceFile];
88
+ get => this.Fields[(int)WixBundlePayloadTupleFields.SourceFile].AsPath();
89
set => this.Set((int)WixBundlePayloadTupleFields.SourceFile, value);
90
}
91
@@ -103,10 +95,10 @@ namespace WixToolset.Data.Tuples
95
set => this.Set((int)WixBundlePayloadTupleFields.DownloadUrl, value);
96
}
97
106
- public YesNoDefaultType Compressed
98
+ public bool? Compressed
99
{
108
- get => Enum.TryParse((string)this.Fields[(int)WixBundlePayloadTupleFields.Compressed], true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet;
109
- set => this.Set((int)WixBundlePayloadTupleFields.Compressed, value.ToString().ToLowerInvariant());
100
+ get => (bool?)this.Fields[(int)WixBundlePayloadTupleFields.Compressed];
101
+ set => this.Set((int)WixBundlePayloadTupleFields.Compressed, value);
102
}
103
104
public string UnresolvedSourceFile
@@ -175,10 +167,10 @@ namespace WixToolset.Data.Tuples
167
set => this.Set((int)WixBundlePayloadTupleFields.ContainerRef, value);
168
}
169
178
- public string Package
170
+ public string PackageRef
171
{
180
- get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Package];
181
- set => this.Set((int)WixBundlePayloadTupleFields.Package, value);
172
+ get => (string)this.Fields[(int)WixBundlePayloadTupleFields.PackageRef];
173
+ set => this.Set((int)WixBundlePayloadTupleFields.PackageRef, value);
174
}
175
176
public bool ContentFile
@@ -193,16 +185,16 @@ namespace WixToolset.Data.Tuples
185
set => this.Set((int)WixBundlePayloadTupleFields.EmbeddedId, value);
186
}
187
196
- public int LayoutOnly
188
+ public bool LayoutOnly
189
{
198
- get => (int)this.Fields[(int)WixBundlePayloadTupleFields.LayoutOnly];
190
+ get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.LayoutOnly];
191
set => this.Set((int)WixBundlePayloadTupleFields.LayoutOnly, value);
192
}
193
202
- public int Packaging
194
+ public PackagingType Packaging
195
{
204
- get => (int)this.Fields[(int)WixBundlePayloadTupleFields.Packaging];
205
- set => this.Set((int)WixBundlePayloadTupleFields.Packaging, value);
196
+ get => (PackagingType)this.Fields[(int)WixBundlePayloadTupleFields.Packaging].AsNumber();
197
+ set => this.Set((int)WixBundlePayloadTupleFields.Packaging, (int)value);
198
}
199
200
public string ParentPackagePayloadRef
@@ -211,4 +203,4 @@ namespace WixToolset.Data.Tuples
203
set => this.Set((int)WixBundlePayloadTupleFields.ParentPackagePayloadRef, value);
204
}
205
}
214
-}
\ No newline at end of file
206
+}
src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs
deleted
-84
@@ -1,84 +0,0 @@
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 WixToolset.Data
4
-{
5
- using WixToolset.Data.Tuples;
6
-
7
- public static partial class TupleDefinitions
8
- {
9
- public static readonly IntermediateTupleDefinition WixBundleProperties = new IntermediateTupleDefinition(
10
- TupleDefinitionType.WixBundleProperties,
11
- new[]
12
- {
13
- new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.DisplayName), IntermediateFieldType.String),
14
- new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.LogPathVariable), IntermediateFieldType.String),
15
- new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.Compressed), IntermediateFieldType.String),
16
- new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.BundleId), IntermediateFieldType.String),
17
- new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.UpgradeCode), IntermediateFieldType.String),
18
- new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.PerMachine), IntermediateFieldType.String),
19
- },
20
- typeof(WixBundlePropertiesTuple));
21
- }
22
-}
23
-
24
-namespace WixToolset.Data.Tuples
25
-{
26
- public enum WixBundlePropertiesTupleFields
27
- {
28
- DisplayName,
29
- LogPathVariable,
30
- Compressed,
31
- BundleId,
32
- UpgradeCode,
33
- PerMachine,
34
- }
35
-
36
- public class WixBundlePropertiesTuple : IntermediateTuple
37
- {
38
- public WixBundlePropertiesTuple() : base(TupleDefinitions.WixBundleProperties, null, null)
39
- {
40
- }
41
-
42
- public WixBundlePropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleProperties, sourceLineNumber, id)
43
- {
44
- }
45
-
46
- public IntermediateField this[WixBundlePropertiesTupleFields index] => this.Fields[(int)index];
47
-
48
- public string DisplayName
49
- {
50
- get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.DisplayName];
51
- set => this.Set((int)WixBundlePropertiesTupleFields.DisplayName, value);
52
- }
53
-
54
- public string LogPathVariable
55
- {
56
- get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.LogPathVariable];
57
- set => this.Set((int)WixBundlePropertiesTupleFields.LogPathVariable, value);
58
- }
59
-
60
- public string Compressed
61
- {
62
- get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.Compressed];
63
- set => this.Set((int)WixBundlePropertiesTupleFields.Compressed, value);
64
- }
65
-
66
- public string BundleId
67
- {
68
- get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.BundleId];
69
- set => this.Set((int)WixBundlePropertiesTupleFields.BundleId, value);
70
- }
71
-
72
- public string UpgradeCode
73
- {
74
- get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.UpgradeCode];
75
- set => this.Set((int)WixBundlePropertiesTupleFields.UpgradeCode, value);
76
- }
77
-
78
- public string PerMachine
79
- {
80
- get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.PerMachine];
81
- set => this.Set((int)WixBundlePropertiesTupleFields.PerMachine, value);
82
- }
83
- }
84
-}
\ No newline at end of file
src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs
+31
-27
@@ -10,14 +10,12 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundleRelatedPackage,
11
new[]
12
{
13
+ new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.PackageRef), IntermediateFieldType.String),
14
new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.RelatedId), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MinVersion), IntermediateFieldType.String),
16
new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MaxVersion), IntermediateFieldType.String),
17
new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Languages), IntermediateFieldType.String),
17
- new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MinInclusive), IntermediateFieldType.Number),
18
- new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MaxInclusive), IntermediateFieldType.Number),
19
- new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.LangInclusive), IntermediateFieldType.Number),
20
- new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.OnlyDetect), IntermediateFieldType.Number),
18
+ new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Attributes), IntermediateFieldType.Number),
19
},
20
typeof(WixBundleRelatedPackageTuple));
21
}
@@ -25,16 +23,26 @@ namespace WixToolset.Data
23
24
namespace WixToolset.Data.Tuples
25
{
26
+ using System;
27
+
28
public enum WixBundleRelatedPackageTupleFields
29
{
30
+ PackageRef,
31
RelatedId,
32
MinVersion,
33
MaxVersion,
34
Languages,
34
- MinInclusive,
35
- MaxInclusive,
36
- LangInclusive,
37
- OnlyDetect,
35
+ Attributes,
36
+ }
37
+
38
+ [Flags]
39
+ public enum WixBundleRelatedPackageAttributes
40
+ {
41
+ None,
42
+ OnlyDetect = 0x1,
43
+ MinInclusive = 0x2,
44
+ MaxInclusive = 0x4,
45
+ LangInclusive = 0x8,
46
}
47
48
public class WixBundleRelatedPackageTuple : IntermediateTuple
@@ -49,6 +57,12 @@ namespace WixToolset.Data.Tuples
57
58
public IntermediateField this[WixBundleRelatedPackageTupleFields index] => this.Fields[(int)index];
59
60
+ public string PackageRef
61
+ {
62
+ get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.PackageRef];
63
+ set => this.Set((int)WixBundleRelatedPackageTupleFields.PackageRef, value);
64
+ }
65
+
66
public string RelatedId
67
{
68
get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.RelatedId];
@@ -73,28 +87,18 @@ namespace WixToolset.Data.Tuples
87
set => this.Set((int)WixBundleRelatedPackageTupleFields.Languages, value);
88
}
89
76
- public int MinInclusive
90
+ public WixBundleRelatedPackageAttributes Attributes
91
{
78
- get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MinInclusive];
79
- set => this.Set((int)WixBundleRelatedPackageTupleFields.MinInclusive, value);
92
+ get => (WixBundleRelatedPackageAttributes)this.Fields[(int)WixBundleRelatedPackageTupleFields.Attributes].AsNumber();
93
+ set => this.Set((int)WixBundleRelatedPackageTupleFields.Attributes, (int)value);
94
}
95
82
- public int MaxInclusive
83
- {
84
- get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MaxInclusive];
85
- set => this.Set((int)WixBundleRelatedPackageTupleFields.MaxInclusive, value);
86
- }
96
+ public bool MinInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MinInclusive) == WixBundleRelatedPackageAttributes.MinInclusive;
97
88
- public int LangInclusive
89
- {
90
- get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.LangInclusive];
91
- set => this.Set((int)WixBundleRelatedPackageTupleFields.LangInclusive, value);
92
- }
98
+ public bool MaxInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.MaxInclusive) == WixBundleRelatedPackageAttributes.MaxInclusive;
99
94
- public int OnlyDetect
95
- {
96
- get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.OnlyDetect];
97
- set => this.Set((int)WixBundleRelatedPackageTupleFields.OnlyDetect, value);
98
- }
100
+ public bool OnlyDetect => (this.Attributes & WixBundleRelatedPackageAttributes.OnlyDetect) == WixBundleRelatedPackageAttributes.OnlyDetect;
101
+
102
+ public bool LangInclusive => (this.Attributes & WixBundleRelatedPackageAttributes.LangInclusive) == WixBundleRelatedPackageAttributes.LangInclusive;
103
}
100
-}
\ No newline at end of file
104
+}
src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs
-8
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundleRollbackBoundary,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.WixChainItemRef), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Vital), IntermediateFieldType.Number),
14
new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Transaction), IntermediateFieldType.Number),
15
},
@@ -22,7 +21,6 @@ namespace WixToolset.Data.Tuples
21
{
22
public enum WixBundleRollbackBoundaryTupleFields
23
{
25
- WixChainItemRef,
24
Vital,
25
Transaction,
26
}
@@ -39,12 +37,6 @@ namespace WixToolset.Data.Tuples
37
38
public IntermediateField this[WixBundleRollbackBoundaryTupleFields index] => this.Fields[(int)index];
39
42
- public string WixChainItemRef
43
- {
44
- get => (string)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.WixChainItemRef];
45
- set => this.Set((int)WixBundleRollbackBoundaryTupleFields.WixChainItemRef, value);
46
- }
47
-
40
public bool? Vital
41
{
42
get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Vital];
src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs
+11
-11
@@ -10,8 +10,8 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundleSlipstreamMsp,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.WixBundlePackageRef), IntermediateFieldType.String),
14
- new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.MspWixBundlePackageRef), IntermediateFieldType.String),
13
+ new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.TargetPackageRef), IntermediateFieldType.String),
14
+ new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.MspPackageRef), IntermediateFieldType.String),
15
},
16
typeof(WixBundleSlipstreamMspTuple));
17
}
@@ -21,8 +21,8 @@ namespace WixToolset.Data.Tuples
21
{
22
public enum WixBundleSlipstreamMspTupleFields
23
{
24
- WixBundlePackageRef,
25
- MspWixBundlePackageRef,
24
+ TargetPackageRef,
25
+ MspPackageRef,
26
}
27
28
public class WixBundleSlipstreamMspTuple : IntermediateTuple
@@ -37,16 +37,16 @@ namespace WixToolset.Data.Tuples
37
38
public IntermediateField this[WixBundleSlipstreamMspTupleFields index] => this.Fields[(int)index];
39
40
- public string WixBundlePackageRef
40
+ public string TargetPackageRef
41
{
42
- get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackageRef];
43
- set => this.Set((int)WixBundleSlipstreamMspTupleFields.WixBundlePackageRef, value);
42
+ get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.TargetPackageRef];
43
+ set => this.Set((int)WixBundleSlipstreamMspTupleFields.TargetPackageRef, value);
44
}
45
46
- public string MspWixBundlePackageRef
46
+ public string MspPackageRef
47
{
48
- get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.MspWixBundlePackageRef];
49
- set => this.Set((int)WixBundleSlipstreamMspTupleFields.MspWixBundlePackageRef, value);
48
+ get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.MspPackageRef];
49
+ set => this.Set((int)WixBundleSlipstreamMspTupleFields.MspPackageRef, value);
50
}
51
}
52
-}
\ No newline at end of file
52
+}
src/WixToolset.Data/Tuples/WixBundleTuple.cs
+71
-57
@@ -10,29 +10,28 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixBundle,
11
new[]
12
{
13
+ new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpgradeCode), IntermediateFieldType.String),
14
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Version), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Copyright), IntermediateFieldType.String),
16
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Name), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Manufacturer), IntermediateFieldType.String),
18
+ new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Attributes), IntermediateFieldType.Number),
19
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.AboutUrl), IntermediateFieldType.String),
17
- new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableModify), IntermediateFieldType.Number),
18
- new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableRemove), IntermediateFieldType.Number),
19
- new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableRepair), IntermediateFieldType.Number),
20
- new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpTelephone), IntermediateFieldType.String),
20
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpUrl), IntermediateFieldType.String),
22
- new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Manufacturer), IntermediateFieldType.String),
21
+ new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpTelephone), IntermediateFieldType.String),
22
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpdateUrl), IntermediateFieldType.String),
24
- new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Compressed), IntermediateFieldType.Number),
25
- new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogPrefixAndExtension), IntermediateFieldType.String),
23
+ new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Compressed), IntermediateFieldType.Bool),
24
+ new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogPathVariable), IntermediateFieldType.String),
25
+ new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogPrefix), IntermediateFieldType.String),
26
+ new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogExtension), IntermediateFieldType.String),
27
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.IconSourceFile), IntermediateFieldType.Path),
28
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.SplashScreenSourceFile), IntermediateFieldType.Path),
29
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Condition), IntermediateFieldType.String),
30
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Tag), IntermediateFieldType.String),
31
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Platform), IntermediateFieldType.String),
32
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.ParentName), IntermediateFieldType.String),
32
- new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpgradeCode), IntermediateFieldType.String),
33
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.BundleId), IntermediateFieldType.String),
34
new IntermediateFieldDefinition(nameof(WixBundleTupleFields.ProviderKey), IntermediateFieldType.String),
35
- new IntermediateFieldDefinition(nameof(WixBundleTupleFields.PerMachine), IntermediateFieldType.Bool),
35
},
36
typeof(WixBundleTuple));
37
}
@@ -40,30 +39,41 @@ namespace WixToolset.Data
39
40
namespace WixToolset.Data.Tuples
41
{
42
+ using System;
43
+
44
public enum WixBundleTupleFields
45
{
46
+ UpgradeCode,
47
Version,
48
Copyright,
49
Name,
50
+ Manufacturer,
51
+ Attributes,
52
AboutUrl,
49
- DisableModify,
50
- DisableRemove,
51
- DisableRepair,
52
- HelpTelephone,
53
HelpUrl,
54
- Manufacturer,
54
+ HelpTelephone,
55
UpdateUrl,
56
Compressed,
57
- LogPrefixAndExtension,
57
+ LogPathVariable,
58
+ LogPrefix,
59
+ LogExtension,
60
IconSourceFile,
61
SplashScreenSourceFile,
62
Condition,
63
Tag,
64
Platform,
65
ParentName,
64
- UpgradeCode,
66
BundleId,
67
ProviderKey,
68
+ }
69
+
70
+ [Flags]
71
+ public enum WixBundleAttributes
72
+ {
73
+ None,
74
+ DisableModify,
75
+ DisableRemove,
76
+ SingleChangeUninstallButton,
77
PerMachine,
78
}
79
@@ -79,6 +89,12 @@ namespace WixToolset.Data.Tuples
89
90
public IntermediateField this[WixBundleTupleFields index] => this.Fields[(int)index];
91
92
+ public string UpgradeCode
93
+ {
94
+ get => (string)this.Fields[(int)WixBundleTupleFields.UpgradeCode];
95
+ set => this.Set((int)WixBundleTupleFields.UpgradeCode, value);
96
+ }
97
+
98
public string Version
99
{
100
get => (string)this.Fields[(int)WixBundleTupleFields.Version];
@@ -97,28 +113,22 @@ namespace WixToolset.Data.Tuples
113
set => this.Set((int)WixBundleTupleFields.Name, value);
114
}
115
100
- public string AboutUrl
101
- {
102
- get => (string)this.Fields[(int)WixBundleTupleFields.AboutUrl];
103
- set => this.Set((int)WixBundleTupleFields.AboutUrl, value);
104
- }
105
-
106
- public int DisableModify
116
+ public string Manufacturer
117
{
108
- get => (int)this.Fields[(int)WixBundleTupleFields.DisableModify];
109
- set => this.Set((int)WixBundleTupleFields.DisableModify, value);
118
+ get => (string)this.Fields[(int)WixBundleTupleFields.Manufacturer];
119
+ set => this.Set((int)WixBundleTupleFields.Manufacturer, value);
120
}
121
112
- public int DisableRemove
122
+ public WixBundleAttributes Attributes
123
{
114
- get => (int)this.Fields[(int)WixBundleTupleFields.DisableRemove];
115
- set => this.Set((int)WixBundleTupleFields.DisableRemove, value);
124
+ get => (WixBundleAttributes)this.Fields[(int)WixBundleTupleFields.Attributes].AsNumber();
125
+ set => this.Set((int)WixBundleTupleFields.Attributes, (int)value);
126
}
127
118
- public int DisableRepair
128
+ public string AboutUrl
129
{
120
- get => (int)this.Fields[(int)WixBundleTupleFields.DisableRepair];
121
- set => this.Set((int)WixBundleTupleFields.DisableRepair, value);
130
+ get => (string)this.Fields[(int)WixBundleTupleFields.AboutUrl];
131
+ set => this.Set((int)WixBundleTupleFields.AboutUrl, value);
132
}
133
134
public string HelpTelephone
@@ -133,28 +143,34 @@ namespace WixToolset.Data.Tuples
143
set => this.Set((int)WixBundleTupleFields.HelpUrl, value);
144
}
145
136
- public string Manufacturer
137
- {
138
- get => (string)this.Fields[(int)WixBundleTupleFields.Manufacturer];
139
- set => this.Set((int)WixBundleTupleFields.Manufacturer, value);
140
- }
141
-
146
public string UpdateUrl
147
{
148
get => (string)this.Fields[(int)WixBundleTupleFields.UpdateUrl];
149
set => this.Set((int)WixBundleTupleFields.UpdateUrl, value);
150
}
151
148
- public int Compressed
152
+ public bool? Compressed
153
{
150
- get => (int)this.Fields[(int)WixBundleTupleFields.Compressed];
154
+ get => (bool?)this.Fields[(int)WixBundleTupleFields.Compressed];
155
set => this.Set((int)WixBundleTupleFields.Compressed, value);
156
}
157
154
- public string LogPrefixAndExtension
158
+ public string LogPathVariable
159
{
156
- get => (string)this.Fields[(int)WixBundleTupleFields.LogPrefixAndExtension];
157
- set => this.Set((int)WixBundleTupleFields.LogPrefixAndExtension, value);
160
+ get => (string)this.Fields[(int)WixBundleTupleFields.LogPathVariable];
161
+ set => this.Set((int)WixBundleTupleFields.LogPathVariable, value);
162
+ }
163
+
164
+ public string LogPrefix
165
+ {
166
+ get => (string)this.Fields[(int)WixBundleTupleFields.LogPrefix];
167
+ set => this.Set((int)WixBundleTupleFields.LogPrefix, value);
168
+ }
169
+
170
+ public string LogExtension
171
+ {
172
+ get => (string)this.Fields[(int)WixBundleTupleFields.LogExtension];
173
+ set => this.Set((int)WixBundleTupleFields.LogExtension, value);
174
}
175
176
public string IconSourceFile
@@ -181,10 +197,10 @@ namespace WixToolset.Data.Tuples
197
set => this.Set((int)WixBundleTupleFields.Tag, value);
198
}
199
184
- public string Platform
200
+ public Platform Platform
201
{
186
- get => (string)this.Fields[(int)WixBundleTupleFields.Platform];
187
- set => this.Set((int)WixBundleTupleFields.Platform, value);
202
+ get => (Platform)this.Fields[(int)WixBundleTupleFields.Platform].AsNumber();
203
+ set => this.Set((int)WixBundleTupleFields.Platform, (int)value);
204
}
205
206
public string ParentName
@@ -193,12 +209,6 @@ namespace WixToolset.Data.Tuples
209
set => this.Set((int)WixBundleTupleFields.ParentName, value);
210
}
211
196
- public string UpgradeCode
197
- {
198
- get => (string)this.Fields[(int)WixBundleTupleFields.UpgradeCode];
199
- set => this.Set((int)WixBundleTupleFields.UpgradeCode, value);
200
- }
201
-
212
public string BundleId
213
{
214
get => (string)this.Fields[(int)WixBundleTupleFields.BundleId];
@@ -211,10 +221,14 @@ namespace WixToolset.Data.Tuples
221
set => this.Set((int)WixBundleTupleFields.ProviderKey, value);
222
}
223
214
- public bool PerMachine
215
- {
216
- get => (bool)this.Fields[(int)WixBundleTupleFields.PerMachine];
217
- set => this.Set((int)WixBundleTupleFields.PerMachine, value);
218
- }
224
+ public PackagingType DefaultPackagingType => (this.Compressed.HasValue && !this.Compressed.Value) ? PackagingType.External : PackagingType.Embedded;
225
+
226
+ public bool DisableModify => (this.Attributes & WixBundleAttributes.DisableModify) == WixBundleAttributes.DisableModify;
227
+
228
+ public bool DisableRemove => (this.Attributes & WixBundleAttributes.DisableRemove) == WixBundleAttributes.DisableRemove;
229
+
230
+ public bool PerMachine => (this.Attributes & WixBundleAttributes.PerMachine) == WixBundleAttributes.PerMachine;
231
+
232
+ public bool SingleChangeUninstallButton => (this.Attributes & WixBundleAttributes.SingleChangeUninstallButton) == WixBundleAttributes.SingleChangeUninstallButton;
233
}
220
-}
\ No newline at end of file
234
+}
src/WixToolset.Data/Tuples/WixChainTuple.cs
+7
-1
@@ -51,5 +51,11 @@ namespace WixToolset.Data.Tuples
51
get => (WixChainAttributes)(int)this.Fields[(int)WixChainTupleFields.Attributes];
52
set => this.Set((int)WixChainTupleFields.Attributes, (int)value);
53
}
54
+
55
+ public bool DisableRollback => (this.Attributes & WixChainAttributes.DisableRollback) == WixChainAttributes.DisableRollback;
56
+
57
+ public bool DisableSystemRestore => (this.Attributes & WixChainAttributes.DisableSystemRestore) == WixChainAttributes.DisableSystemRestore;
58
+
59
+ public bool ParallelCache => (this.Attributes & WixChainAttributes.ParallelCache) == WixChainAttributes.ParallelCache;
60
}
55
-}
\ No newline at end of file
61
+}
src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs
+14
-12
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixComponentSearch,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.WixSearchRef), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Guid), IntermediateFieldType.String),
14
new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.ProductCode), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Attributes), IntermediateFieldType.Number),
@@ -21,14 +20,23 @@ namespace WixToolset.Data
20
21
namespace WixToolset.Data.Tuples
22
{
23
+ using System;
24
+
25
public enum WixComponentSearchTupleFields
26
{
26
- WixSearchRef,
27
Guid,
28
ProductCode,
29
Attributes,
30
}
31
32
+ [Flags]
33
+ public enum WixComponentSearchAttributes
34
+ {
35
+ KeyPath = 0x1,
36
+ State = 0x2,
37
+ WantDirectory = 0x4,
38
+ }
39
+
40
public class WixComponentSearchTuple : IntermediateTuple
41
{
42
public WixComponentSearchTuple() : base(TupleDefinitions.WixComponentSearch, null, null)
@@ -41,12 +49,6 @@ namespace WixToolset.Data.Tuples
49
50
public IntermediateField this[WixComponentSearchTupleFields index] => this.Fields[(int)index];
51
44
- public string WixSearchRef
45
- {
46
- get => (string)this.Fields[(int)WixComponentSearchTupleFields.WixSearchRef];
47
- set => this.Set((int)WixComponentSearchTupleFields.WixSearchRef, value);
48
- }
49
-
52
public string Guid
53
{
54
get => (string)this.Fields[(int)WixComponentSearchTupleFields.Guid];
@@ -59,10 +61,10 @@ namespace WixToolset.Data.Tuples
61
set => this.Set((int)WixComponentSearchTupleFields.ProductCode, value);
62
}
63
62
- public int Attributes
64
+ public WixComponentSearchAttributes Attributes
65
{
64
- get => (int)this.Fields[(int)WixComponentSearchTupleFields.Attributes];
65
- set => this.Set((int)WixComponentSearchTupleFields.Attributes, value);
66
+ get => (WixComponentSearchAttributes)this.Fields[(int)WixComponentSearchTupleFields.Attributes].AsNumber();
67
+ set => this.Set((int)WixComponentSearchTupleFields.Attributes, (int)value);
68
}
69
}
68
-}
\ No newline at end of file
70
+}
src/WixToolset.Data/Tuples/WixDependencyProviderTuple.cs
new
+87
@@ -0,0 +1,87 @@
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 WixToolset.Data
4
+{
5
+ using WixToolset.Data.Tuples;
6
+
7
+ public static partial class TupleDefinitions
8
+ {
9
+ public static readonly IntermediateTupleDefinition WixDependencyProvider = new IntermediateTupleDefinition(
10
+ TupleDefinitionType.WixDependencyProvider.ToString(),
11
+ new[]
12
+ {
13
+ new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.ComponentRef), IntermediateFieldType.String),
14
+ new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.ProviderKey), IntermediateFieldType.String),
15
+ new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.Version), IntermediateFieldType.String),
16
+ new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.DisplayName), IntermediateFieldType.String),
17
+ new IntermediateFieldDefinition(nameof(WixDependencyProviderTupleFields.Attributes), IntermediateFieldType.Number),
18
+ },
19
+ typeof(WixDependencyProviderTuple));
20
+ }
21
+}
22
+
23
+namespace WixToolset.Data.Tuples
24
+{
25
+ using System;
26
+ using WixToolset.Data;
27
+
28
+ public enum WixDependencyProviderTupleFields
29
+ {
30
+ ComponentRef,
31
+ ProviderKey,
32
+ Version,
33
+ DisplayName,
34
+ Attributes,
35
+ }
36
+
37
+ [Flags]
38
+ public enum WixDependencyProviderAttributes
39
+ {
40
+ ProvidesAttributesBundle = 0x10000
41
+ }
42
+
43
+ public class WixDependencyProviderTuple : IntermediateTuple
44
+ {
45
+ public WixDependencyProviderTuple() : base(TupleDefinitions.WixDependencyProvider, null, null)
46
+ {
47
+ }
48
+
49
+ public WixDependencyProviderTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDependencyProvider, sourceLineNumber, id)
50
+ {
51
+ }
52
+
53
+ public IntermediateField this[WixDependencyProviderTupleFields index] => this.Fields[(int)index];
54
+
55
+ public string ComponentRef
56
+ {
57
+ get => this.Fields[(int)WixDependencyProviderTupleFields.ComponentRef].AsString();
58
+ set => this.Set((int)WixDependencyProviderTupleFields.ComponentRef, value);
59
+ }
60
+
61
+ public string ProviderKey
62
+ {
63
+ get => this.Fields[(int)WixDependencyProviderTupleFields.ProviderKey].AsString();
64
+ set => this.Set((int)WixDependencyProviderTupleFields.ProviderKey, value);
65
+ }
66
+
67
+ public string Version
68
+ {
69
+ get => this.Fields[(int)WixDependencyProviderTupleFields.Version].AsString();
70
+ set => this.Set((int)WixDependencyProviderTupleFields.Version, value);
71
+ }
72
+
73
+ public string DisplayName
74
+ {
75
+ get => this.Fields[(int)WixDependencyProviderTupleFields.DisplayName].AsString();
76
+ set => this.Set((int)WixDependencyProviderTupleFields.DisplayName, value);
77
+ }
78
+
79
+ public WixDependencyProviderAttributes Attributes
80
+ {
81
+ get => (WixDependencyProviderAttributes)(int)this.Fields[(int)WixDependencyProviderTupleFields.Attributes];
82
+ set => this.Set((int)WixDependencyProviderTupleFields.Attributes, (int)value);
83
+ }
84
+
85
+ public bool Bundle => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesBundle) == WixDependencyProviderAttributes.ProvidesAttributesBundle;
86
+ }
87
+}
src/WixToolset.Data/Tuples/WixFileSearchTuple.cs
+21
-12
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixFileSearch,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.WixSearchRef), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Path), IntermediateFieldType.String),
14
new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinVersion), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxVersion), IntermediateFieldType.String),
@@ -27,9 +26,10 @@ namespace WixToolset.Data
26
27
namespace WixToolset.Data.Tuples
28
{
29
+ using System;
30
+
31
public enum WixFileSearchTupleFields
32
{
32
- WixSearchRef,
33
Path,
34
MinVersion,
35
MaxVersion,
@@ -41,6 +41,21 @@ namespace WixToolset.Data.Tuples
41
Attributes,
42
}
43
44
+ [Flags]
45
+ public enum WixFileSearchAttributes
46
+ {
47
+ Default = 0x001,
48
+ MinVersionInclusive = 0x002,
49
+ MaxVersionInclusive = 0x004,
50
+ MinSizeInclusive = 0x008,
51
+ MaxSizeInclusive = 0x010,
52
+ MinDateInclusive = 0x020,
53
+ MaxDateInclusive = 0x040,
54
+ WantVersion = 0x080,
55
+ WantExists = 0x100,
56
+ IsDirectory = 0x200,
57
+ }
58
+
59
public class WixFileSearchTuple : IntermediateTuple
60
{
61
public WixFileSearchTuple() : base(TupleDefinitions.WixFileSearch, null, null)
@@ -53,12 +68,6 @@ namespace WixToolset.Data.Tuples
68
69
public IntermediateField this[WixFileSearchTupleFields index] => this.Fields[(int)index];
70
56
- public string WixSearchRef
57
- {
58
- get => (string)this.Fields[(int)WixFileSearchTupleFields.WixSearchRef];
59
- set => this.Set((int)WixFileSearchTupleFields.WixSearchRef, value);
60
- }
61
-
71
public string Path
72
{
73
get => (string)this.Fields[(int)WixFileSearchTupleFields.Path];
@@ -107,10 +116,10 @@ namespace WixToolset.Data.Tuples
116
set => this.Set((int)WixFileSearchTupleFields.Languages, value);
117
}
118
110
- public int Attributes
119
+ public WixFileSearchAttributes Attributes
120
{
112
- get => (int)this.Fields[(int)WixFileSearchTupleFields.Attributes];
113
- set => this.Set((int)WixFileSearchTupleFields.Attributes, value);
121
+ get => (WixFileSearchAttributes)this.Fields[(int)WixFileSearchTupleFields.Attributes].AsNumber();
122
+ set => this.Set((int)WixFileSearchTupleFields.Attributes, (int)value);
123
}
124
}
116
-}
\ No newline at end of file
125
+}
src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs
deleted
-116
@@ -1,116 +0,0 @@
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 WixToolset.Data
4
-{
5
- using WixToolset.Data.Tuples;
6
-
7
- public static partial class TupleDefinitions
8
- {
9
- public static readonly IntermediateTupleDefinition WixPackageFeatureInfo = new IntermediateTupleDefinition(
10
- TupleDefinitionType.WixPackageFeatureInfo,
11
- new[]
12
- {
13
- new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Package), IntermediateFieldType.String),
14
- new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Feature), IntermediateFieldType.String),
15
- new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Size), IntermediateFieldType.String),
16
- new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Parent), IntermediateFieldType.String),
17
- new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Title), IntermediateFieldType.String),
18
- new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Description), IntermediateFieldType.String),
19
- new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Display), IntermediateFieldType.String),
20
- new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Level), IntermediateFieldType.String),
21
- new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Directory), IntermediateFieldType.String),
22
- new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Attributes), IntermediateFieldType.String),
23
- },
24
- typeof(WixPackageFeatureInfoTuple));
25
- }
26
-}
27
-
28
-namespace WixToolset.Data.Tuples
29
-{
30
- public enum WixPackageFeatureInfoTupleFields
31
- {
32
- Package,
33
- Feature,
34
- Size,
35
- Parent,
36
- Title,
37
- Description,
38
- Display,
39
- Level,
40
- Directory,
41
- Attributes,
42
- }
43
-
44
- public class WixPackageFeatureInfoTuple : IntermediateTuple
45
- {
46
- public WixPackageFeatureInfoTuple() : base(TupleDefinitions.WixPackageFeatureInfo, null, null)
47
- {
48
- }
49
-
50
- public WixPackageFeatureInfoTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPackageFeatureInfo, sourceLineNumber, id)
51
- {
52
- }
53
-
54
- public IntermediateField this[WixPackageFeatureInfoTupleFields index] => this.Fields[(int)index];
55
-
56
- public string Package
57
- {
58
- get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Package];
59
- set => this.Set((int)WixPackageFeatureInfoTupleFields.Package, value);
60
- }
61
-
62
- public string Feature
63
- {
64
- get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Feature];
65
- set => this.Set((int)WixPackageFeatureInfoTupleFields.Feature, value);
66
- }
67
-
68
- public string Size
69
- {
70
- get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Size];
71
- set => this.Set((int)WixPackageFeatureInfoTupleFields.Size, value);
72
- }
73
-
74
- public string Parent
75
- {
76
- get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Parent];
77
- set => this.Set((int)WixPackageFeatureInfoTupleFields.Parent, value);
78
- }
79
-
80
- public string Title
81
- {
82
- get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Title];
83
- set => this.Set((int)WixPackageFeatureInfoTupleFields.Title, value);
84
- }
85
-
86
- public string Description
87
- {
88
- get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Description];
89
- set => this.Set((int)WixPackageFeatureInfoTupleFields.Description, value);
90
- }
91
-
92
- public string Display
93
- {
94
- get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Display];
95
- set => this.Set((int)WixPackageFeatureInfoTupleFields.Display, value);
96
- }
97
-
98
- public string Level
99
- {
100
- get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Level];
101
- set => this.Set((int)WixPackageFeatureInfoTupleFields.Level, value);
102
- }
103
-
104
- public string Directory
105
- {
106
- get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Directory];
107
- set => this.Set((int)WixPackageFeatureInfoTupleFields.Directory, value);
108
- }
109
-
110
- public string Attributes
111
- {
112
- get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Attributes];
113
- set => this.Set((int)WixPackageFeatureInfoTupleFields.Attributes, value);
114
- }
115
- }
116
-}
\ No newline at end of file
src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs
deleted
-180
@@ -1,180 +0,0 @@
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 WixToolset.Data
4
-{
5
- using WixToolset.Data.Tuples;
6
-
7
- public static partial class TupleDefinitions
8
- {
9
- public static readonly IntermediateTupleDefinition WixPackageProperties = new IntermediateTupleDefinition(
10
- TupleDefinitionType.WixPackageProperties,
11
- new[]
12
- {
13
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Package), IntermediateFieldType.String),
14
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Vital), IntermediateFieldType.String),
15
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DisplayName), IntermediateFieldType.String),
16
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Description), IntermediateFieldType.String),
17
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DownloadSize), IntermediateFieldType.String),
18
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.PackageSize), IntermediateFieldType.String),
19
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.InstalledSize), IntermediateFieldType.String),
20
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.PackageType), IntermediateFieldType.String),
21
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Permanent), IntermediateFieldType.String),
22
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.LogPathVariable), IntermediateFieldType.String),
23
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.RollbackLogPathVariable), IntermediateFieldType.String),
24
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Compressed), IntermediateFieldType.String),
25
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DisplayInternalUI), IntermediateFieldType.String),
26
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.ProductCode), IntermediateFieldType.String),
27
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.UpgradeCode), IntermediateFieldType.String),
28
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Version), IntermediateFieldType.String),
29
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.InstallCondition), IntermediateFieldType.String),
30
- new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Cache), IntermediateFieldType.String),
31
- },
32
- typeof(WixPackagePropertiesTuple));
33
- }
34
-}
35
-
36
-namespace WixToolset.Data.Tuples
37
-{
38
- public enum WixPackagePropertiesTupleFields
39
- {
40
- Package,
41
- Vital,
42
- DisplayName,
43
- Description,
44
- DownloadSize,
45
- PackageSize,
46
- InstalledSize,
47
- PackageType,
48
- Permanent,
49
- LogPathVariable,
50
- RollbackLogPathVariable,
51
- Compressed,
52
- DisplayInternalUI,
53
- ProductCode,
54
- UpgradeCode,
55
- Version,
56
- InstallCondition,
57
- Cache,
58
- }
59
-
60
- public class WixPackagePropertiesTuple : IntermediateTuple
61
- {
62
- public WixPackagePropertiesTuple() : base(TupleDefinitions.WixPackageProperties, null, null)
63
- {
64
- }
65
-
66
- public WixPackagePropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPackageProperties, sourceLineNumber, id)
67
- {
68
- }
69
-
70
- public IntermediateField this[WixPackagePropertiesTupleFields index] => this.Fields[(int)index];
71
-
72
- public string Package
73
- {
74
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Package];
75
- set => this.Set((int)WixPackagePropertiesTupleFields.Package, value);
76
- }
77
-
78
- public string Vital
79
- {
80
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Vital];
81
- set => this.Set((int)WixPackagePropertiesTupleFields.Vital, value);
82
- }
83
-
84
- public string DisplayName
85
- {
86
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayName];
87
- set => this.Set((int)WixPackagePropertiesTupleFields.DisplayName, value);
88
- }
89
-
90
- public string Description
91
- {
92
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Description];
93
- set => this.Set((int)WixPackagePropertiesTupleFields.Description, value);
94
- }
95
-
96
- public string DownloadSize
97
- {
98
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DownloadSize];
99
- set => this.Set((int)WixPackagePropertiesTupleFields.DownloadSize, value);
100
- }
101
-
102
- public string PackageSize
103
- {
104
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageSize];
105
- set => this.Set((int)WixPackagePropertiesTupleFields.PackageSize, value);
106
- }
107
-
108
- public string InstalledSize
109
- {
110
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstalledSize];
111
- set => this.Set((int)WixPackagePropertiesTupleFields.InstalledSize, value);
112
- }
113
-
114
- public string PackageType
115
- {
116
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageType];
117
- set => this.Set((int)WixPackagePropertiesTupleFields.PackageType, value);
118
- }
119
-
120
- public string Permanent
121
- {
122
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Permanent];
123
- set => this.Set((int)WixPackagePropertiesTupleFields.Permanent, value);
124
- }
125
-
126
- public string LogPathVariable
127
- {
128
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.LogPathVariable];
129
- set => this.Set((int)WixPackagePropertiesTupleFields.LogPathVariable, value);
130
- }
131
-
132
- public string RollbackLogPathVariable
133
- {
134
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.RollbackLogPathVariable];
135
- set => this.Set((int)WixPackagePropertiesTupleFields.RollbackLogPathVariable, value);
136
- }
137
-
138
- public string Compressed
139
- {
140
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Compressed];
141
- set => this.Set((int)WixPackagePropertiesTupleFields.Compressed, value);
142
- }
143
-
144
- public string DisplayInternalUI
145
- {
146
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayInternalUI];
147
- set => this.Set((int)WixPackagePropertiesTupleFields.DisplayInternalUI, value);
148
- }
149
-
150
- public string ProductCode
151
- {
152
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.ProductCode];
153
- set => this.Set((int)WixPackagePropertiesTupleFields.ProductCode, value);
154
- }
155
-
156
- public string UpgradeCode
157
- {
158
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.UpgradeCode];
159
- set => this.Set((int)WixPackagePropertiesTupleFields.UpgradeCode, value);
160
- }
161
-
162
- public string Version
163
- {
164
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Version];
165
- set => this.Set((int)WixPackagePropertiesTupleFields.Version, value);
166
- }
167
-
168
- public string InstallCondition
169
- {
170
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstallCondition];
171
- set => this.Set((int)WixPackagePropertiesTupleFields.InstallCondition, value);
172
- }
173
-
174
- public string Cache
175
- {
176
- get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Cache];
177
- set => this.Set((int)WixPackagePropertiesTupleFields.Cache, value);
178
- }
179
- }
180
-}
\ No newline at end of file
src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs
deleted
-92
@@ -1,92 +0,0 @@
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 WixToolset.Data
4
-{
5
- using WixToolset.Data.Tuples;
6
-
7
- public static partial class TupleDefinitions
8
- {
9
- public static readonly IntermediateTupleDefinition WixPayloadProperties = new IntermediateTupleDefinition(
10
- TupleDefinitionType.WixPayloadProperties,
11
- new[]
12
- {
13
- new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Payload), IntermediateFieldType.String),
14
- new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Package), IntermediateFieldType.String),
15
- new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Container), IntermediateFieldType.String),
16
- new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Name), IntermediateFieldType.String),
17
- new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Size), IntermediateFieldType.String),
18
- new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.DownloadUrl), IntermediateFieldType.String),
19
- new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.LayoutOnly), IntermediateFieldType.String),
20
- },
21
- typeof(WixPayloadPropertiesTuple));
22
- }
23
-}
24
-
25
-namespace WixToolset.Data.Tuples
26
-{
27
- public enum WixPayloadPropertiesTupleFields
28
- {
29
- Payload,
30
- Package,
31
- Container,
32
- Name,
33
- Size,
34
- DownloadUrl,
35
- LayoutOnly,
36
- }
37
-
38
- public class WixPayloadPropertiesTuple : IntermediateTuple
39
- {
40
- public WixPayloadPropertiesTuple() : base(TupleDefinitions.WixPayloadProperties, null, null)
41
- {
42
- }
43
-
44
- public WixPayloadPropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPayloadProperties, sourceLineNumber, id)
45
- {
46
- }
47
-
48
- public IntermediateField this[WixPayloadPropertiesTupleFields index] => this.Fields[(int)index];
49
-
50
- public string Payload
51
- {
52
- get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Payload];
53
- set => this.Set((int)WixPayloadPropertiesTupleFields.Payload, value);
54
- }
55
-
56
- public string Package
57
- {
58
- get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Package];
59
- set => this.Set((int)WixPayloadPropertiesTupleFields.Package, value);
60
- }
61
-
62
- public string Container
63
- {
64
- get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Container];
65
- set => this.Set((int)WixPayloadPropertiesTupleFields.Container, value);
66
- }
67
-
68
- public string Name
69
- {
70
- get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Name];
71
- set => this.Set((int)WixPayloadPropertiesTupleFields.Name, value);
72
- }
73
-
74
- public string Size
75
- {
76
- get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Size];
77
- set => this.Set((int)WixPayloadPropertiesTupleFields.Size, value);
78
- }
79
-
80
- public string DownloadUrl
81
- {
82
- get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.DownloadUrl];
83
- set => this.Set((int)WixPayloadPropertiesTupleFields.DownloadUrl, value);
84
- }
85
-
86
- public string LayoutOnly
87
- {
88
- get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.LayoutOnly];
89
- set => this.Set((int)WixPayloadPropertiesTupleFields.LayoutOnly, value);
90
- }
91
- }
92
-}
\ No newline at end of file
src/WixToolset.Data/Tuples/WixProductSearchTuple.cs
+16
-12
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixProductSearch,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.WixSearchRef), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Guid), IntermediateFieldType.String),
14
new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Attributes), IntermediateFieldType.Number),
15
},
@@ -20,13 +19,24 @@ namespace WixToolset.Data
19
20
namespace WixToolset.Data.Tuples
21
{
22
+ using System;
23
+
24
public enum WixProductSearchTupleFields
25
{
25
- WixSearchRef,
26
Guid,
27
Attributes,
28
}
29
30
+ [Flags]
31
+ public enum WixProductSearchAttributes
32
+ {
33
+ Version = 0x1,
34
+ Language = 0x2,
35
+ State = 0x4,
36
+ Assignment = 0x8,
37
+ UpgradeCode = 0x10,
38
+ }
39
+
40
public class WixProductSearchTuple : IntermediateTuple
41
{
42
public WixProductSearchTuple() : base(TupleDefinitions.WixProductSearch, null, null)
@@ -39,22 +49,16 @@ namespace WixToolset.Data.Tuples
49
50
public IntermediateField this[WixProductSearchTupleFields index] => this.Fields[(int)index];
51
42
- public string WixSearchRef
43
- {
44
- get => (string)this.Fields[(int)WixProductSearchTupleFields.WixSearchRef];
45
- set => this.Set((int)WixProductSearchTupleFields.WixSearchRef, value);
46
- }
47
-
52
public string Guid
53
{
54
get => (string)this.Fields[(int)WixProductSearchTupleFields.Guid];
55
set => this.Set((int)WixProductSearchTupleFields.Guid, value);
56
}
57
54
- public int Attributes
58
+ public WixProductSearchAttributes Attributes
59
{
56
- get => (int)this.Fields[(int)WixProductSearchTupleFields.Attributes];
57
- set => this.Set((int)WixProductSearchTupleFields.Attributes, value);
60
+ get => (WixProductSearchAttributes)this.Fields[(int)WixProductSearchTupleFields.Attributes].AsNumber();
61
+ set => this.Set((int)WixProductSearchTupleFields.Attributes, (int)value);
62
}
63
}
60
-}
\ No newline at end of file
64
+}
src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs
+20
-15
@@ -10,7 +10,6 @@ namespace WixToolset.Data
10
TupleDefinitionType.WixRegistrySearch,
11
new[]
12
{
13
- new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.WixSearchRef), IntermediateFieldType.String),
13
new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Root), IntermediateFieldType.Number),
14
new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Key), IntermediateFieldType.String),
15
new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Value), IntermediateFieldType.String),
@@ -22,15 +21,27 @@ namespace WixToolset.Data
21
22
namespace WixToolset.Data.Tuples
23
{
24
+ using System;
25
+
26
public enum WixRegistrySearchTupleFields
27
{
27
- WixSearchRef,
28
Root,
29
Key,
30
Value,
31
Attributes,
32
}
33
34
+ [Flags]
35
+ public enum WixRegistrySearchAttributes
36
+ {
37
+ Raw = 0x01,
38
+ Compatible = 0x02,
39
+ ExpandEnvironmentVariables = 0x04,
40
+ WantValue = 0x08,
41
+ WantExists = 0x10,
42
+ Win64 = 0x20,
43
+ }
44
+
45
public class WixRegistrySearchTuple : IntermediateTuple
46
{
47
public WixRegistrySearchTuple() : base(TupleDefinitions.WixRegistrySearch, null, null)
@@ -43,16 +54,10 @@ namespace WixToolset.Data.Tuples
54
55
public IntermediateField this[WixRegistrySearchTupleFields index] => this.Fields[(int)index];
56
46
- public string WixSearchRef
57
+ public RegistryRootType Root
58
{
48
- get => (string)this.Fields[(int)WixRegistrySearchTupleFields.WixSearchRef];
49
- set => this.Set((int)WixRegistrySearchTupleFields.WixSearchRef, value);
50
- }
51
-
52
- public int Root
53
- {
54
- get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Root];
55
- set => this.Set((int)WixRegistrySearchTupleFields.Root, value);
59
+ get => (RegistryRootType)this.Fields[(int)WixRegistrySearchTupleFields.Root].AsNumber();
60
+ set => this.Set((int)WixRegistrySearchTupleFields.Root, (int)value);
61
}
62
63
public string Key
@@ -67,10 +72,10 @@ namespace WixToolset.Data.Tuples
72
set => this.Set((int)WixRegistrySearchTupleFields.Value, value);
73
}
74
70
- public int Attributes
75
+ public WixRegistrySearchAttributes Attributes
76
{
72
- get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Attributes];
73
- set => this.Set((int)WixRegistrySearchTupleFields.Attributes, value);
77
+ get => (WixRegistrySearchAttributes)this.Fields[(int)WixRegistrySearchTupleFields.Attributes].AsNumber();
78
+ set => this.Set((int)WixRegistrySearchTupleFields.Attributes, (int)value);
79
}
80
}
76
-}
\ No newline at end of file
81
+}
src/WixToolset.Data/WindowsInstaller/Rows/WixApprovedExeForElevationRow.cs
+5
-3
@@ -2,6 +2,8 @@
2
3
namespace WixToolset.Data.WindowsInstaller.Rows
4
{
5
+ using WixToolset.Data.Tuples;
6
+
7
/// <summary>
8
/// Specialization of a row for the WixApprovedExeForElevation table.
9
/// </summary>
@@ -61,9 +63,9 @@ namespace WixToolset.Data.WindowsInstaller.Rows
63
/// Gets or sets the attibutes.
64
/// </summary>
65
/// <value>The BundleApprovedExeForElevationAttributes.</value>
64
- public BundleApprovedExeForElevationAttributes Attributes
66
+ public WixApprovedExeForElevationAttributes Attributes
67
{
66
- get { return (BundleApprovedExeForElevationAttributes)this.Fields[3].Data; }
68
+ get { return (WixApprovedExeForElevationAttributes)this.Fields[3].Data; }
69
set { this.Fields[3].Data = (int)value; }
70
}
71
@@ -72,7 +74,7 @@ namespace WixToolset.Data.WindowsInstaller.Rows
74
/// </summary>
75
public bool Win64
76
{
75
- get { return BundleApprovedExeForElevationAttributes.Win64 == (this.Attributes & BundleApprovedExeForElevationAttributes.Win64); }
77
+ get { return WixApprovedExeForElevationAttributes.Win64 == (this.Attributes & WixApprovedExeForElevationAttributes.Win64); }
78
}
79
}
80
}
src/WixToolset.Data/WindowsInstaller/Rows/WixBundleExePackageRow.cs
+2
-1
@@ -2,6 +2,7 @@
2
3
namespace WixToolset.Data.WindowsInstaller.Rows
4
{
5
+ using System;
6
using WixToolset.Data.Tuples;
7
8
/// <summary>
@@ -97,7 +98,7 @@ namespace WixToolset.Data.WindowsInstaller.Rows
98
/// </summary>
99
public bool Repairable
100
{
100
- get { return 0 != (this.Attributes & WixBundleExePackageAttributes.Repairable); }
101
+ get { return !String.IsNullOrEmpty(this.RepairCommand); }
102
}
103
}
104
}
src/WixToolset.Data/WindowsInstaller/Rows/WixBundleMsiPackageRow.cs
-8
@@ -126,13 +126,5 @@ namespace WixToolset.Data.WindowsInstaller.Rows
126
{
127
get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine); }
128
}
129
-
130
- /// <summary>
131
- /// Gets the suppress loose file payload generation of a package.
132
- /// </summary>
133
- public bool SuppressLooseFilePayloadGeneration
134
- {
135
- get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.SuppressLooseFilePayloadGeneration); }
136
- }
129
}
130
}
src/WixToolset.Data/WindowsInstaller/Rows/WixBundlePatchTargetCodeRow.cs
+1
-19
@@ -3,25 +3,7 @@
3
namespace WixToolset.Data.WindowsInstaller.Rows
4
{
5
using System;
6
-
7
- /// <summary>
8
- /// Attributes for the PatchTargetCode table.
9
- /// </summary>
10
- [Flags]
11
- public enum WixBundlePatchTargetCodeAttributes : int
12
- {
13
- None = 0,
14
-
15
- /// <summary>
16
- /// The transform targets a specific ProductCode.
17
- /// </summary>
18
- TargetsProductCode = 1,
19
-
20
- /// <summary>
21
- /// The transform targets a specific UpgradeCode.
22
- /// </summary>
23
- TargetsUpgradeCode = 2,
24
- }
6
+ using WixToolset.Data.Tuples;
7
8
/// <summary>
9
/// Specialization of a row for the PatchTargetCode table.