diff options
author | Bob Arnson <bob@firegiant.com> | 2024-03-26 22:49:53 -0400 |
---|---|---|
committer | Bob Arnson <github@bobs.org> | 2024-03-27 09:41:34 -0400 |
commit | 2b6fa3ab686188cfe983abbc3d51d1542069b2c8 (patch) | |
tree | 3067b92453bb1f64db6381b7964e37920cb24da0 | |
parent | 8db36166ee5a051983025c3311ebb654e5c2e5d9 (diff) | |
download | wix-2b6fa3ab686188cfe983abbc3d51d1542069b2c8.tar.gz wix-2b6fa3ab686188cfe983abbc3d51d1542069b2c8.tar.bz2 wix-2b6fa3ab686188cfe983abbc3d51d1542069b2c8.zip |
Allow default major upgrade to be rescheduled.
Fixes https://github.com/wixtoolset/issues/issues/8046.
3 files changed, 26 insertions, 1 deletions
diff --git a/src/wix/WixToolset.Core/Link/AddDefaultSymbolsCommand.cs b/src/wix/WixToolset.Core/Link/AddDefaultSymbolsCommand.cs index 28ad9351..3d5280a2 100644 --- a/src/wix/WixToolset.Core/Link/AddDefaultSymbolsCommand.cs +++ b/src/wix/WixToolset.Core/Link/AddDefaultSymbolsCommand.cs | |||
@@ -99,6 +99,7 @@ namespace WixToolset.Core.Link | |||
99 | SequenceTable = SequenceTable.InstallExecuteSequence, | 99 | SequenceTable = SequenceTable.InstallExecuteSequence, |
100 | Action = "RemoveExistingProducts", | 100 | Action = "RemoveExistingProducts", |
101 | After = "InstallValidate", | 101 | After = "InstallValidate", |
102 | Overridable = true, | ||
102 | }, | 103 | }, |
103 | new WixSimpleReferenceSymbol(packageSymbol.SourceLineNumbers) | 104 | new WixSimpleReferenceSymbol(packageSymbol.SourceLineNumbers) |
104 | { | 105 | { |
@@ -126,7 +127,10 @@ namespace WixToolset.Core.Link | |||
126 | { | 127 | { |
127 | var symbolWithSection = new SymbolWithSection(section, symbol); | 128 | var symbolWithSection = new SymbolWithSection(section, symbol); |
128 | var fullName = symbolWithSection.GetFullName(); | 129 | var fullName = symbolWithSection.GetFullName(); |
129 | this.Find.SymbolsByName.Add(fullName, symbolWithSection); | 130 | if (!this.Find.SymbolsByName.ContainsKey(fullName)) |
131 | { | ||
132 | this.Find.SymbolsByName.Add(fullName, symbolWithSection); | ||
133 | } | ||
130 | } | 134 | } |
131 | } | 135 | } |
132 | } | 136 | } |
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/DefaultMajorUpgradeReschedule/DefaultMajorUpgradeReschedule.wxs b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/DefaultMajorUpgradeReschedule/DefaultMajorUpgradeReschedule.wxs new file mode 100644 index 00000000..3269106b --- /dev/null +++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/DefaultMajorUpgradeReschedule/DefaultMajorUpgradeReschedule.wxs | |||
@@ -0,0 +1,7 @@ | |||
1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | ||
2 | <Package Name="DefaultMajorUpgradeReschedule" Language="1033" Version="2.0.0" Manufacturer="Example Corporation" UpgradeCode="{3F2494B1-AF5E-48ED-9C9E-843F1DB2BC97}"> | ||
3 | <InstallExecuteSequence> | ||
4 | <RemoveExistingProducts After="InstallFinalize" /> | ||
5 | </InstallExecuteSequence> | ||
6 | </Package> | ||
7 | </Wix> | ||
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/UpgradeFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/UpgradeFixture.cs index 72d09b63..2d2c0703 100644 --- a/src/wix/test/WixToolsetTest.CoreIntegration/UpgradeFixture.cs +++ b/src/wix/test/WixToolsetTest.CoreIntegration/UpgradeFixture.cs | |||
@@ -74,6 +74,20 @@ namespace WixToolsetTest.CoreIntegration | |||
74 | } | 74 | } |
75 | 75 | ||
76 | [Fact] | 76 | [Fact] |
77 | public void CanRescheduleRemoveExistingProductsWithDefaultMajorUpgrade() | ||
78 | { | ||
79 | var folder = TestData.Get("TestData", "DefaultMajorUpgradeReschedule"); | ||
80 | var build = new Builder(folder, new Type[] { }, new[] { folder }); | ||
81 | |||
82 | var results = build.BuildAndQuery(Build, "InstallExecuteSequence").Where(r => r.StartsWith("InstallExecuteSequence:RemoveExistingProducts") || r.StartsWith("InstallExecuteSequence:InstallFinalize")).ToArray(); | ||
83 | WixAssert.CompareLineByLine(new[] | ||
84 | { | ||
85 | "InstallExecuteSequence:InstallFinalize\t\t6600", | ||
86 | "InstallExecuteSequence:RemoveExistingProducts\t\t6601", | ||
87 | }, results); | ||
88 | } | ||
89 | |||
90 | [Fact] | ||
77 | public void CanOverrideDefaultMajorUpgradeLaunchConditionMessage() | 91 | public void CanOverrideDefaultMajorUpgradeLaunchConditionMessage() |
78 | { | 92 | { |
79 | var folder = TestData.Get("TestData", "DefaultMajorUpgradeOverride"); | 93 | var folder = TestData.Get("TestData", "DefaultMajorUpgradeOverride"); |