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 /src | |
| 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.
Diffstat (limited to 'src')
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"); |
