From 6a96c2ee082c37fd12d071514cab450f0c18618a Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Wed, 4 Nov 2020 19:10:55 -0500 Subject: Warn about new InstallerVersion default. --- src/WixToolset.Converters/WixConverter.cs | 17 +++++++++++++ .../WixToolsetTest.Converters/ConditionFixture.cs | 2 +- .../ProductPackageFixture.cs | 29 +++++++++++++++++++--- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/WixToolset.Converters/WixConverter.cs b/src/WixToolset.Converters/WixConverter.cs index c713045e..be09a683 100644 --- a/src/WixToolset.Converters/WixConverter.cs +++ b/src/WixToolset.Converters/WixConverter.cs @@ -687,6 +687,12 @@ namespace WixToolset.Converters { xSummaryInformation.Name = SummaryInformationElementName; + var xInstallerVersion = xSummaryInformation.Attribute("InstallerVersion"); + if (this.SourceVersion < 4 && xInstallerVersion == null) + { + this.OnError(ConverterTestType.InstallerVersionBehaviorChange, element, "Breaking change: The default value for Package/@InstallerVersion has been changed to '500' regardless of build platform. If you need a lower version, set it manually in the Module element."); + } + RemoveAttribute(xSummaryInformation, "AdminImage"); RemoveAttribute(xSummaryInformation, "Comments"); MoveAttribute(xSummaryInformation, "Id", xModule, "Guid"); @@ -750,6 +756,12 @@ namespace WixToolset.Converters { xSummaryInformation.Name = SummaryInformationElementName; + var xInstallerVersion = xSummaryInformation.Attribute("InstallerVersion"); + if (this.SourceVersion < 4 && xInstallerVersion == null) + { + this.OnError(ConverterTestType.InstallerVersionBehaviorChange, element, "Breaking change: The default value for Package/@InstallerVersion has been changed to '500' regardless of build platform. If you need a lower version, set it manually in the Package element."); + } + RemoveAttribute(xSummaryInformation, "AdminImage"); RemoveAttribute(xSummaryInformation, "Comments"); MoveAttribute(xSummaryInformation, "Compressed", xPackage, defaultValue: "no"); @@ -1456,6 +1468,11 @@ namespace WixToolset.Converters /// DisplayInternalUI can't be converted. /// DisplayInternalUiNotConvertable, + + /// + /// InstallerVersion has breaking change when missing. + /// + InstallerVersionBehaviorChange, } } } diff --git a/src/test/WixToolsetTest.Converters/ConditionFixture.cs b/src/test/WixToolsetTest.Converters/ConditionFixture.cs index 75ceec31..e5f33b04 100644 --- a/src/test/WixToolsetTest.Converters/ConditionFixture.cs +++ b/src/test/WixToolsetTest.Converters/ConditionFixture.cs @@ -247,7 +247,7 @@ namespace WixToolsetTest.Converters var converter = new WixConverter(messaging, 2, null, null); var errors = converter.ConvertDocument(document); - Assert.Equal(5, errors); + Assert.Equal(6, errors); var actualLines = UnformattedDocumentLines(document); WixAssert.CompareLineByLine(expected, actualLines); diff --git a/src/test/WixToolsetTest.Converters/ProductPackageFixture.cs b/src/test/WixToolsetTest.Converters/ProductPackageFixture.cs index 9407ff16..94681a4c 100644 --- a/src/test/WixToolsetTest.Converters/ProductPackageFixture.cs +++ b/src/test/WixToolsetTest.Converters/ProductPackageFixture.cs @@ -33,7 +33,7 @@ namespace WixToolsetTest.Converters "" }; - AssertSuccess(parse, 3, expected); + AssertSuccess(parse, 4, expected); } private static void AssertSuccess(string input, int expectedErrorCount, string[] expected) @@ -96,6 +96,29 @@ namespace WixToolsetTest.Converters AssertSuccess(parse, 3, expected); } + [Fact] + public void FixesImplicitInstallerVersion() + { + var parse = String.Join(Environment.NewLine, + "", + "", + " ", + " ", + " ", + ""); + + var expected = new[] + { + "", + " ", + " ", + " ", + "" + }; + + AssertSuccess(parse, 4, expected); + } + [Fact] public void FixesNonDefaultInstallerVersion() { @@ -139,7 +162,7 @@ namespace WixToolsetTest.Converters "" }; - AssertSuccess(parse, 3, expected); + AssertSuccess(parse, 4, expected); } [Fact] @@ -164,7 +187,7 @@ namespace WixToolsetTest.Converters "" }; - AssertSuccess(parse, 3, expected); + AssertSuccess(parse, 4, expected); } [Fact] -- cgit v1.2.3-55-g6feb