aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2024-07-12 01:17:15 -0700
committerRob Mensching <rob@firegiant.com>2024-07-12 10:51:38 -0700
commit41cf53b5ce33d297f70d29bc39eac4bce6a2c28e (patch)
treea5412878738e917bc15574dc2aa29e77747580c6
parent8678b0a698d58e59ccca2e2649bb3e923295b9b0 (diff)
downloadwix-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.cs11
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/VersionFixture.cs56
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");