aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2024-12-28 17:41:00 -0800
committerRob Mensching <rob@firegiant.com>2024-12-28 17:41:00 -0800
commit6a19d81ab8c5614dd670ab3f392c804df3ac5ac6 (patch)
tree9e5b9ede837a088079f2136fa5fad450e7bdfb4d
parenta076b9d72486328d8dc95675daae417a3c07d6d6 (diff)
downloadwix-6a19d81ab8c5614dd670ab3f392c804df3ac5ac6.tar.gz
wix-6a19d81ab8c5614dd670ab3f392c804df3ac5ac6.tar.bz2
wix-6a19d81ab8c5614dd670ab3f392c804df3ac5ac6.zip
Fix WixPackageSymbol Attributes field to be set correctly
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs21
-rw-r--r--src/wix/WixToolset.Core/Compiler_Package.cs12
2 files changed, 16 insertions, 17 deletions
diff --git a/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs
index 4a112266..cca26875 100644
--- a/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs
@@ -44,12 +44,9 @@ namespace WixToolset.Data.Symbols
44 { 44 {
45 None = 0x0, 45 None = 0x0,
46 PerMachine = 0x1, 46 PerMachine = 0x1,
47 } 47 PerUser = 0x2,
48 48 PerUserOrMachine = 0x4,
49 public enum WixPackageUpgradeStrategy 49 MajorUpgradeStrategy = 0x8,
50 {
51 None = 0x0,
52 MajorUpgrade = 0x1,
53 } 50 }
54 51
55 public class WixPackageSymbol : IntermediateSymbol 52 public class WixPackageSymbol : IntermediateSymbol
@@ -112,12 +109,12 @@ namespace WixToolset.Data.Symbols
112 set => this.Set((int)WixPackageSymbolFields.Codepage, value); 109 set => this.Set((int)WixPackageSymbolFields.Codepage, value);
113 } 110 }
114 111
115 public WixPackageUpgradeStrategy UpgradeStrategy
116 {
117 get => (WixPackageUpgradeStrategy)this.Fields[(int)WixPackageSymbolFields.Attributes].AsNumber();
118 set => this.Set((int)WixPackageSymbolFields.Attributes, (int)value);
119 }
120
121 public bool PerMachine => (this.Attributes & WixPackageAttributes.PerMachine) == WixPackageAttributes.PerMachine; 112 public bool PerMachine => (this.Attributes & WixPackageAttributes.PerMachine) == WixPackageAttributes.PerMachine;
113
114 public bool PerUser => (this.Attributes & WixPackageAttributes.PerUser) == WixPackageAttributes.PerUser;
115
116 public bool PerUserOrMachine => (this.Attributes & WixPackageAttributes.PerUserOrMachine) == WixPackageAttributes.PerUserOrMachine;
117
118 public bool MajorUpgradeStrategy => (this.Attributes & WixPackageAttributes.MajorUpgradeStrategy) == WixPackageAttributes.MajorUpgradeStrategy;
122 } 119 }
123} 120}
diff --git a/src/wix/WixToolset.Core/Compiler_Package.cs b/src/wix/WixToolset.Core/Compiler_Package.cs
index 853c6ed2..e3796061 100644
--- a/src/wix/WixToolset.Core/Compiler_Package.cs
+++ b/src/wix/WixToolset.Core/Compiler_Package.cs
@@ -41,7 +41,7 @@ namespace WixToolset.Core
41 var isPackageNameSet = false; 41 var isPackageNameSet = false;
42 var isKeywordsSet = false; 42 var isKeywordsSet = false;
43 var isPackageAuthorSet = false; 43 var isPackageAuthorSet = false;
44 var upgradeStrategy = WixPackageUpgradeStrategy.MajorUpgrade; 44 var majorUpgradeStrategy = true;
45 45
46 this.GetDefaultPlatformAndInstallerVersion(out var platform, out var msiVersion); 46 this.GetDefaultPlatformAndInstallerVersion(out var platform, out var msiVersion);
47 47
@@ -117,10 +117,10 @@ namespace WixToolset.Core
117 switch (strategy) 117 switch (strategy)
118 { 118 {
119 case "majorUpgrade": 119 case "majorUpgrade":
120 upgradeStrategy = WixPackageUpgradeStrategy.MajorUpgrade; 120 majorUpgradeStrategy = true;
121 break; 121 break;
122 case "none": 122 case "none":
123 upgradeStrategy = WixPackageUpgradeStrategy.None; 123 majorUpgradeStrategy = false;
124 break; 124 break;
125 default: 125 default:
126 this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, strategy, "majorUpgrade", "none")); 126 this.Core.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, strategy, "majorUpgrade", "none"));
@@ -394,6 +394,9 @@ namespace WixToolset.Core
394 394
395 if (!this.Core.EncounteredError) 395 if (!this.Core.EncounteredError)
396 { 396 {
397 var attributes = isPerUserOrMachine ? WixPackageAttributes.PerUserOrMachine : isPerMachine ? WixPackageAttributes.PerMachine : WixPackageAttributes.PerUser;
398 attributes |= majorUpgradeStrategy ? WixPackageAttributes.MajorUpgradeStrategy : WixPackageAttributes.None;
399
397 this.Core.AddSymbol(new WixPackageSymbol(sourceLineNumbers) 400 this.Core.AddSymbol(new WixPackageSymbol(sourceLineNumbers)
398 { 401 {
399 PackageId = productCode, 402 PackageId = productCode,
@@ -402,9 +405,8 @@ namespace WixToolset.Core
402 Language = productLanguage, 405 Language = productLanguage,
403 Version = version, 406 Version = version,
404 Manufacturer = manufacturer, 407 Manufacturer = manufacturer,
405 Attributes = isPerMachine ? WixPackageAttributes.PerMachine : WixPackageAttributes.None, 408 Attributes = attributes,
406 Codepage = codepage, 409 Codepage = codepage,
407 UpgradeStrategy = upgradeStrategy,
408 }); 410 });
409 411
410 if (!isCommentsSet) 412 if (!isCommentsSet)