From 1eea9c6e7b276c7c0dfde7779dfec45046ad5831 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sat, 23 Dec 2023 21:37:02 -0500 Subject: Add default major upgrade. Add Package/@UpgradeStrategy to allow `none` to suppress major upgrade. Implements https://github.com/wixtoolset/issues/issues/7605. Requires https://github.com/wixtoolset/wix/pull/435. --- src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs | 12 ++++++++++++ src/api/wix/WixToolset.Data/WixStandardLibrary.cs | 12 +++++++++++- src/api/wix/WixToolset.Data/WixStandardLibraryIdentifiers.cs | 5 +++++ 3 files changed, 28 insertions(+), 1 deletion(-) (limited to 'src/api') diff --git a/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs index e1720033..4a112266 100644 --- a/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs +++ b/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs @@ -46,6 +46,12 @@ namespace WixToolset.Data.Symbols PerMachine = 0x1, } + public enum WixPackageUpgradeStrategy + { + None = 0x0, + MajorUpgrade = 0x1, + } + public class WixPackageSymbol : IntermediateSymbol { public WixPackageSymbol() : base(SymbolDefinitions.WixPackage, null, null) @@ -106,6 +112,12 @@ namespace WixToolset.Data.Symbols set => this.Set((int)WixPackageSymbolFields.Codepage, value); } + public WixPackageUpgradeStrategy UpgradeStrategy + { + get => (WixPackageUpgradeStrategy)this.Fields[(int)WixPackageSymbolFields.Attributes].AsNumber(); + set => this.Set((int)WixPackageSymbolFields.Attributes, (int)value); + } + public bool PerMachine => (this.Attributes & WixPackageAttributes.PerMachine) == WixPackageAttributes.PerMachine; } } diff --git a/src/api/wix/WixToolset.Data/WixStandardLibrary.cs b/src/api/wix/WixToolset.Data/WixStandardLibrary.cs index 3758e5b1..3f851f09 100644 --- a/src/api/wix/WixToolset.Data/WixStandardLibrary.cs +++ b/src/api/wix/WixToolset.Data/WixStandardLibrary.cs @@ -32,7 +32,17 @@ namespace WixToolset.Data private static IEnumerable YieldLocalizations() { - var strings = new BindVariable[0]; + var sourceLineNumber = new SourceLineNumber("wixstd.wixlib"); + + var strings = new[] { + new BindVariable() + { + SourceLineNumbers = sourceLineNumber, + Id = "WixDowngradePreventedMessage", + Value = "A newer version of [ProductName] is already installed.", + Overridable = true, + }, + }; var localizedControls = new LocalizedControl[0]; diff --git a/src/api/wix/WixToolset.Data/WixStandardLibraryIdentifiers.cs b/src/api/wix/WixToolset.Data/WixStandardLibraryIdentifiers.cs index 6579a42b..73e4245b 100644 --- a/src/api/wix/WixToolset.Data/WixStandardLibraryIdentifiers.cs +++ b/src/api/wix/WixToolset.Data/WixStandardLibraryIdentifiers.cs @@ -21,5 +21,10 @@ namespace WixToolset.Data /// Default feature name. /// public static readonly string DefaultFeatureName = "WixDefaultFeature"; + + /// + /// WiX Standard localization strings. + /// + public static readonly string WixStandardLocalizationStrings = "WixStandardLocalizationStrings"; } } -- cgit v1.2.3-55-g6feb