Fix Win64 to Bitness, even in v4 .wxs code
Also updated AccessModifiers and decide not to change v3 Bundle .wxs code.
Rob Mensching committed
Mar 2, 2021 at 02:49 UTC
7d43a882fe2554c6f424c687ca2c564a83e64c81
2 files changed
+37
-47
src/WixToolset.Converters.Symbolizer/ConvertSymbols.cs
+19
-19
@@ -129,7 +129,7 @@ namespace WixToolset.Converters.Symbolizer
129
keyPathType = ComponentKeyPathType.OdbcDataSource;
130
}
131
132
- return new ComponentSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
132
+ return new ComponentSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
133
{
134
ComponentId = FieldAsString(row, 1),
135
DirectoryRef = FieldAsString(row, 2),
@@ -159,7 +159,7 @@ namespace WixToolset.Converters.Symbolizer
159
var sourceType = DetermineCustomActionSourceType(caType);
160
var targetType = DetermineCustomActionTargetType(caType);
161
162
- return new CustomActionSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
162
+ return new CustomActionSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
163
{
164
ExecutionType = executionType,
165
SourceType = sourceType,
@@ -180,7 +180,7 @@ namespace WixToolset.Converters.Symbolizer
180
var id = FieldAsString(row, 0);
181
var splits = SplitDefaultDir(FieldAsString(row, 2));
182
183
- var symbol = new DirectorySymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, id))
183
+ var symbol = new DirectorySymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, id))
184
{
185
ParentDirectoryRef = FieldAsString(row, 1),
186
Name = splits[0],
@@ -202,7 +202,7 @@ namespace WixToolset.Converters.Symbolizer
202
{
203
var splitName = FieldAsString(row, 3)?.Split('|');
204
205
- var symbol = new DuplicateFileSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
205
+ var symbol = new DuplicateFileSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
206
{
207
ComponentRef = FieldAsString(row, 1),
208
FileRef = FieldAsString(row, 2),
@@ -230,7 +230,7 @@ namespace WixToolset.Converters.Symbolizer
230
installDefault = FeatureInstallDefault.Source;
231
}
232
233
- return new FeatureSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
233
+ return new FeatureSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
234
{
235
ParentFeatureRef = FieldAsString(row, 1),
236
Title = FieldAsString(row, 2),
@@ -263,7 +263,7 @@ namespace WixToolset.Converters.Symbolizer
263
var id = FieldAsString(row, 0);
264
var splitName = FieldAsString(row, 2).Split('|');
265
266
- var symbol = new FileSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, id))
266
+ var symbol = new FileSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, id))
267
{
268
ComponentRef = FieldAsString(row, 1),
269
Name = splitName.Length > 1 ? splitName[1] : splitName[0],
@@ -309,7 +309,7 @@ namespace WixToolset.Converters.Symbolizer
309
var splitName = FieldAsString(row, 1).Split('|');
310
var action = FieldAsInt(row, 6);
311
312
- var symbol = new IniFileSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
312
+ var symbol = new IniFileSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
313
{
314
FileName = splitName.Length > 1 ? splitName[1] : splitName[0],
315
ShortFileName = splitName.Length > 1 ? splitName[0] : null,
@@ -327,7 +327,7 @@ namespace WixToolset.Converters.Symbolizer
327
{
328
var splitName = FieldAsString(row, 1).Split('|');
329
330
- var symbol = new IniLocatorSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
330
+ var symbol = new IniLocatorSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
331
{
332
FileName = splitName.Length > 1 ? splitName[1] : splitName[0],
333
ShortFileName = splitName.Length > 1 ? splitName[0] : null,
@@ -344,7 +344,7 @@ namespace WixToolset.Converters.Symbolizer
344
case "Media":
345
{
346
var diskId = FieldAsInt(row, 0);
347
- var symbol = new MediaSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, diskId))
347
+ var symbol = new MediaSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, diskId))
348
{
349
DiskId = diskId,
350
LastSequence = FieldAsNullableInt(row, 1),
@@ -375,7 +375,7 @@ namespace WixToolset.Converters.Symbolizer
375
var componentId = FieldAsString(row, 0);
376
if (componentsById.TryGetValue(componentId, out var componentRow))
377
{
378
- return new AssemblySymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(componentRow, 5)))
378
+ return new AssemblySymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(componentRow, 5)))
379
{
380
ComponentRef = componentId,
381
FeatureRef = FieldAsString(row, 1),
@@ -446,7 +446,7 @@ namespace WixToolset.Converters.Symbolizer
446
}
447
}
448
449
- return new RegistrySymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
449
+ return new RegistrySymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
450
{
451
Root = (RegistryRootType)FieldAsInt(row, 1),
452
Key = FieldAsString(row, 2),
@@ -461,7 +461,7 @@ namespace WixToolset.Converters.Symbolizer
461
{
462
var type = FieldAsInt(row, 4);
463
464
- return new RegLocatorSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
464
+ return new RegLocatorSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
465
{
466
Root = (RegistryRootType)FieldAsInt(row, 1),
467
Key = FieldAsString(row, 2),
@@ -475,7 +475,7 @@ namespace WixToolset.Converters.Symbolizer
475
var splitName = FieldAsString(row, 2).Split('|');
476
var installMode = FieldAsInt(row, 4);
477
478
- return new RemoveFileSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
478
+ return new RemoveFileSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
479
{
480
ComponentRef = FieldAsString(row, 1),
481
FileName = splitName.Length > 1 ? splitName[1] : splitName[0],
@@ -487,7 +487,7 @@ namespace WixToolset.Converters.Symbolizer
487
}
488
case "RemoveRegistry":
489
{
490
- return new RemoveRegistrySymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
490
+ return new RemoveRegistrySymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
491
{
492
Action = RemoveRegistryActionType.RemoveOnInstall,
493
Root = (RegistryRootType)FieldAsInt(row, 1),
@@ -505,7 +505,7 @@ namespace WixToolset.Converters.Symbolizer
505
{
506
var events = FieldAsInt(row, 2);
507
var wait = FieldAsNullableInt(row, 4);
508
- return new ServiceControlSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
508
+ return new ServiceControlSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
509
{
510
Name = FieldAsString(row, 1),
511
Arguments = FieldAsString(row, 3),
@@ -526,7 +526,7 @@ namespace WixToolset.Converters.Symbolizer
526
{
527
var splitName = FieldAsString(row, 2).Split('|');
528
529
- return new ShortcutSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
529
+ return new ShortcutSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
530
{
531
DirectoryRef = FieldAsString(row, 1),
532
Name = splitName.Length > 1 ? splitName[1] : splitName[0],
@@ -553,7 +553,7 @@ namespace WixToolset.Converters.Symbolizer
553
case "Upgrade":
554
{
555
var attributes = FieldAsInt(row, 4);
556
- return new UpgradeSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Public, FieldAsString(row, 0)))
556
+ return new UpgradeSymbol(SourceLineNumber4(row.SourceLineNumbers), new Identifier(AccessModifier.Global, FieldAsString(row, 0)))
557
{
558
UpgradeCode = FieldAsString(row, 0),
559
VersionMin = FieldAsString(row, 1),
@@ -797,9 +797,9 @@ namespace WixToolset.Converters.Symbolizer
797
case Wix3.ColumnType.Localized:
798
case Wix3.ColumnType.Object:
799
case Wix3.ColumnType.Preserved:
800
- return new Identifier(AccessModifier.Public, (string)row.Fields[0].Data);
800
+ return new Identifier(AccessModifier.Global, (string)row.Fields[0].Data);
801
case Wix3.ColumnType.Number:
802
- return new Identifier(AccessModifier.Public, FieldAsInt(row, 0));
802
+ return new Identifier(AccessModifier.Global, FieldAsInt(row, 0));
803
default:
804
return null;
805
}
src/WixToolset.Converters/WixConverter.cs
+18
-28
@@ -649,15 +649,12 @@ namespace WixToolset.Converters
649
650
private void ConvertApprovedExeForElevationElement(XElement element)
651
{
652
- if (this.SourceVersion < 4)
652
+ var win64 = element.Attribute("Win64");
653
+ if (win64 != null && this.OnError(ConverterTestType.Win64AttributeRenamed, element, "The Win64 attribute has been renamed. Use the Bitness attribute instead."))
654
{
654
- var win64 = element.Attribute("Win64");
655
- if (win64 != null && this.OnError(ConverterTestType.Win64AttributeRenamed, element, "The Win64 attribute has been renamed. Use the Bitness attribute instead."))
656
- {
657
- var value = this.UpdateWin64ValueToBitnessValue(win64);
658
- element.Add(new XAttribute("Bitness", value));
659
- win64.Remove();
660
- }
655
+ var value = this.UpdateWin64ValueToBitnessValue(win64);
656
+ element.Add(new XAttribute("Bitness", value));
657
+ win64.Remove();
658
}
659
}
660
@@ -1117,15 +1114,12 @@ namespace WixToolset.Converters
1114
1115
private void ConvertRegistrySearchElement(XElement element)
1116
{
1120
- if (this.SourceVersion < 4)
1117
+ var win64 = element.Attribute("Win64");
1118
+ if (win64 != null && this.OnError(ConverterTestType.Win64AttributeRenamed, element, "The Win64 attribute has been renamed. Use the Bitness attribute instead."))
1119
{
1122
- var win64 = element.Attribute("Win64");
1123
- if (win64 != null && this.OnError(ConverterTestType.Win64AttributeRenamed, element, "The Win64 attribute has been renamed. Use the Bitness attribute instead."))
1124
- {
1125
- var value = this.UpdateWin64ValueToBitnessValue(win64);
1126
- element.Add(new XAttribute("Bitness", value));
1127
- win64.Remove();
1128
- }
1120
+ var value = this.UpdateWin64ValueToBitnessValue(win64);
1121
+ element.Add(new XAttribute("Bitness", value));
1122
+ win64.Remove();
1123
}
1124
}
1125
@@ -1361,20 +1355,16 @@ namespace WixToolset.Converters
1355
1356
private void ConvertUtilRegistrySearchElement(XElement element)
1357
{
1364
- if (this.SourceVersion < 4)
1358
+ var win64 = element.Attribute("Win64");
1359
+ if (win64 != null && this.OnError(ConverterTestType.Win64AttributeRenamed, element, "The Win64 attribute has been renamed. Use the Bitness attribute instead."))
1360
{
1366
- var win64 = element.Attribute("Win64");
1367
- if (win64 != null && this.OnError(ConverterTestType.Win64AttributeRenamed, element, "The Win64 attribute has been renamed. Use the Bitness attribute instead."))
1368
- {
1369
- var value = this.UpdateWin64ValueToBitnessValue(win64);
1370
- element.Add(new XAttribute("Bitness", value));
1371
- win64.Remove();
1372
- }
1373
- //else if (this.OnError(ConverterTestType.BitnessAttributeRequired, element, "Use the Bitness attribute instead."))
1374
- //{
1375
- // element.Add(new XAttribute("Bitness", "always32"));
1376
- //}
1361
+ var value = this.UpdateWin64ValueToBitnessValue(win64);
1362
+ element.Add(new XAttribute("Bitness", value));
1363
+ win64.Remove();
1364
+ }
1365
1366
+ if (this.SourceVersion < 4)
1367
+ {
1368
var result = element.Attribute("Result")?.Value;
1369
if (result == null || result == "value")
1370
{