@joebigelow / wix-1 / commits / 7d43a882

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 {