@joebigelow / wix / commits / cece10e0

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.