aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2024-03-26 22:49:53 -0400
committerBob Arnson <github@bobs.org>2024-03-27 09:41:34 -0400
commit2b6fa3ab686188cfe983abbc3d51d1542069b2c8 (patch)
tree3067b92453bb1f64db6381b7964e37920cb24da0
parent8db36166ee5a051983025c3311ebb654e5c2e5d9 (diff)
downloadwix-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.
-rw-r--r--src/wix/WixToolset.Core/Link/AddDefaultSymbolsCommand.cs6
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/DefaultMajorUpgradeReschedule/DefaultMajorUpgradeReschedule.wxs7
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/UpgradeFixture.cs14
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");