diff options
author | Rob Mensching <rob@firegiant.com> | 2024-07-12 01:17:15 -0700 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2024-07-12 10:51:38 -0700 |
commit | 41cf53b5ce33d297f70d29bc39eac4bce6a2c28e (patch) | |
tree | a5412878738e917bc15574dc2aa29e77747580c6 | |
parent | 8678b0a698d58e59ccca2e2649bb3e923295b9b0 (diff) | |
download | wix-41cf53b5ce33d297f70d29bc39eac4bce6a2c28e.tar.gz wix-41cf53b5ce33d297f70d29bc39eac4bce6a2c28e.tar.bz2 wix-41cf53b5ce33d297f70d29bc39eac4bce6a2c28e.zip |
Re-enable insignificant zeros in PackageVersion
Closes 8589
-rw-r--r-- | src/wix/WixToolset.Core/ExtensibilityServices/BackendHelper.cs | 11 | ||||
-rw-r--r-- | src/wix/test/WixToolsetTest.CoreIntegration/VersionFixture.cs | 56 |
2 files changed, 60 insertions, 7 deletions
diff --git a/src/wix/WixToolset.Core/ExtensibilityServices/BackendHelper.cs b/src/wix/WixToolset.Core/ExtensibilityServices/BackendHelper.cs index 43f7aa01..988ad60a 100644 --- a/src/wix/WixToolset.Core/ExtensibilityServices/BackendHelper.cs +++ b/src/wix/WixToolset.Core/ExtensibilityServices/BackendHelper.cs | |||
@@ -120,16 +120,13 @@ namespace WixToolset.Core.ExtensibilityServices | |||
120 | { | 120 | { |
121 | if (WixVersion.TryParse(version, out var wixVersion) && wixVersion.HasMajor && wixVersion.Major < 256 && wixVersion.Minor < 256 && wixVersion.Patch < 65536 && wixVersion.Labels == null && String.IsNullOrEmpty(wixVersion.Metadata)) | 121 | if (WixVersion.TryParse(version, out var wixVersion) && wixVersion.HasMajor && wixVersion.Major < 256 && wixVersion.Minor < 256 && wixVersion.Patch < 65536 && wixVersion.Labels == null && String.IsNullOrEmpty(wixVersion.Metadata)) |
122 | { | 122 | { |
123 | parsedVersion = $"{wixVersion.Major}.{wixVersion.Minor}"; | 123 | if (strict) |
124 | |||
125 | if (strict || wixVersion.HasPatch) | ||
126 | { | 124 | { |
127 | parsedVersion += $".{wixVersion.Patch}"; | 125 | parsedVersion = $"{wixVersion.Major}.{wixVersion.Minor}.{wixVersion.Patch}"; |
128 | } | 126 | } |
129 | 127 | else | |
130 | if (!strict && wixVersion.HasRevision) | ||
131 | { | 128 | { |
132 | parsedVersion += $".{wixVersion.Revision}"; | 129 | parsedVersion = wixVersion.Prefix.HasValue ? version.Substring(1) : version; |
133 | } | 130 | } |
134 | 131 | ||
135 | return true; | 132 | return true; |
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/VersionFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/VersionFixture.cs index cf8466aa..4934933f 100644 --- a/src/wix/test/WixToolsetTest.CoreIntegration/VersionFixture.cs +++ b/src/wix/test/WixToolsetTest.CoreIntegration/VersionFixture.cs | |||
@@ -41,6 +41,62 @@ namespace WixToolsetTest.CoreIntegration | |||
41 | } | 41 | } |
42 | 42 | ||
43 | [Fact] | 43 | [Fact] |
44 | public void CanBuildMsiWithInsignificantZeroesVersion() | ||
45 | { | ||
46 | var folder = TestData.Get(@"TestData"); | ||
47 | |||
48 | using (var fs = new DisposableFileSystem()) | ||
49 | { | ||
50 | var baseFolder = fs.GetFolder(); | ||
51 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
52 | var msiPath = Path.Combine(baseFolder, "bin", "test1.msi"); | ||
53 | |||
54 | var result = WixRunner.Execute(new[] | ||
55 | { | ||
56 | "build", | ||
57 | Path.Combine(folder, "Version", "PackageWithReplaceableVersion.wxs"), | ||
58 | "-bindpath", Path.Combine(folder, "SingleFile", "data"), | ||
59 | "-intermediateFolder", intermediateFolder, | ||
60 | "-d", "Version=0001.002.0003.04", | ||
61 | "-o", msiPath | ||
62 | }); | ||
63 | |||
64 | result.AssertSuccess(); | ||
65 | |||
66 | var productVersion = GetProductVersionFromMsi(msiPath); | ||
67 | Assert.Equal("0001.002.0003.04", productVersion); | ||
68 | } | ||
69 | } | ||
70 | |||
71 | [Fact] | ||
72 | public void CanBuildMsiWithPrefixedInsignificantZeroesVersion() | ||
73 | { | ||
74 | var folder = TestData.Get(@"TestData"); | ||
75 | |||
76 | using (var fs = new DisposableFileSystem()) | ||
77 | { | ||
78 | var baseFolder = fs.GetFolder(); | ||
79 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
80 | var msiPath = Path.Combine(baseFolder, "bin", "test1.msi"); | ||
81 | |||
82 | var result = WixRunner.Execute(new[] | ||
83 | { | ||
84 | "build", | ||
85 | Path.Combine(folder, "Version", "PackageWithReplaceableVersion.wxs"), | ||
86 | "-bindpath", Path.Combine(folder, "SingleFile", "data"), | ||
87 | "-intermediateFolder", intermediateFolder, | ||
88 | "-d", "Version=v01.002.0003.000004", | ||
89 | "-o", msiPath | ||
90 | }); | ||
91 | |||
92 | result.AssertSuccess(); | ||
93 | |||
94 | var productVersion = GetProductVersionFromMsi(msiPath); | ||
95 | Assert.Equal("01.002.0003.000004", productVersion); | ||
96 | } | ||
97 | } | ||
98 | |||
99 | [Fact] | ||
44 | public void CanBuildMsiWithPrefixedVersionBindVariable() | 100 | public void CanBuildMsiWithPrefixedVersionBindVariable() |
45 | { | 101 | { |
46 | var folder = TestData.Get(@"TestData"); | 102 | var folder = TestData.Get(@"TestData"); |