diff options
author | Rob Mensching <rob@firegiant.com> | 2024-12-28 17:41:00 -0800 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2024-12-28 17:41:00 -0800 |
commit | 6a19d81ab8c5614dd670ab3f392c804df3ac5ac6 (patch) | |
tree | 9e5b9ede837a088079f2136fa5fad450e7bdfb4d | |
parent | a076b9d72486328d8dc95675daae417a3c07d6d6 (diff) | |
download | wix-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.cs | 21 | ||||
-rw-r--r-- | src/wix/WixToolset.Core/Compiler_Package.cs | 12 |
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) |