Skip to content

Commit c6d8764

Browse files
authored
Merge pull request #2259 from tcs-devel/bugfix/fix-wix-version-file-generation
Issue #2257 Ensure Valid Wix Version File
2 parents 438d450 + 8f36a7b commit c6d8764

File tree

3 files changed

+85
-0
lines changed

3 files changed

+85
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
3+
<?define AssemblySemFileVer="1.2.3.0"?>
4+
<?define AssemblySemVer="1.2.3.0"?>
5+
<?define BranchName="develop"?>
6+
<?define BuildMetaData="5"?>
7+
<?define BuildMetaDataPadded="05"?>
8+
<?define CommitDate="2019-02-20"?>
9+
<?define CommitsSinceVersionSource="5"?>
10+
<?define CommitsSinceVersionSourcePadded="0005"?>
11+
<?define EscapedBranchName="develop"?>
12+
<?define FullBuildMetaData="5.Branch.develop.Sha.commitSha"?>
13+
<?define FullSemVer="1.2.3+5"?>
14+
<?define InformationalVersion="1.2.3+5.Branch.develop.Sha.commitSha"?>
15+
<?define LegacySemVer="1.2.3"?>
16+
<?define LegacySemVerPadded="1.2.3"?>
17+
<?define Major="1"?>
18+
<?define MajorMinorPatch="1.2.3"?>
19+
<?define Minor="2"?>
20+
<?define NuGetPreReleaseTag=""?>
21+
<?define NuGetPreReleaseTagV2=""?>
22+
<?define NuGetVersion="1.2.3"?>
23+
<?define NuGetVersionV2="1.2.3"?>
24+
<?define Patch="3"?>
25+
<?define PreReleaseLabel=""?>
26+
<?define PreReleaseNumber=""?>
27+
<?define PreReleaseTag=""?>
28+
<?define PreReleaseTagWithDash=""?>
29+
<?define SemVer="1.2.3"?>
30+
<?define Sha="commitSha"?>
31+
<?define ShortSha="commitShortSha"?>
32+
<?define VersionSourceSha="versionSourceSha"?>
33+
<?define WeightedPreReleaseNumber=""?>
34+
</Include>

src/GitVersionCore.Tests/VersionConverters/WixFileTests.cs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,55 @@ public void UpdateWixVersionFile()
6767
.ReadAllText(file)
6868
.ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved")));
6969
}
70+
71+
[Test]
72+
[Category(NoMono)]
73+
[Description(NoMonoDescription)]
74+
public void UpdateWixVersionFileWhenFileAlreadyExists()
75+
{
76+
var workingDir = Path.GetTempPath();
77+
var semVer = new SemanticVersion
78+
{
79+
Major = 1,
80+
Minor = 2,
81+
Patch = 3,
82+
BuildMetaData = "5.Branch.develop"
83+
};
84+
85+
semVer.BuildMetaData.VersionSourceSha = "versionSourceSha";
86+
semVer.BuildMetaData.Sha = "commitSha";
87+
semVer.BuildMetaData.ShortSha = "commitShortSha";
88+
semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2019-02-20 23:59:59Z");
89+
90+
var config = new TestEffectiveConfiguration(buildMetaDataPadding: 2, legacySemVerPadding: 5);
91+
92+
var stringBuilder = new StringBuilder();
93+
void Action(string s) => stringBuilder.AppendLine(s);
94+
95+
var logAppender = new TestLogAppender(Action);
96+
var log = new Log(logAppender);
97+
98+
var sp = ConfigureServices(service =>
99+
{
100+
service.AddSingleton<ILog>(log);
101+
});
102+
103+
var fileSystem = sp.GetService<IFileSystem>();
104+
var variableProvider = sp.GetService<IVariableProvider>();
105+
var versionVariables = variableProvider.GetVariablesFor(semVer, config, false);
106+
107+
using var wixVersionFileUpdater = sp.GetService<IWixVersionFileUpdater>();
108+
109+
// fake an already existing file
110+
var file = Path.Combine(workingDir, WixVersionFileUpdater.WixVersionFileName);
111+
fileSystem.WriteAllText(file, new string('x', 1024 * 1024));
112+
113+
wixVersionFileUpdater.Execute(versionVariables, new WixVersionContext(workingDir));
114+
115+
fileSystem
116+
.ReadAllText(file)
117+
.ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved")));
118+
}
119+
70120
}
71121
}

src/GitVersionCore/VersionConverters/WixUpdater/WixVersionFileUpdater.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public void Execute(VersionVariables variables, WixVersionContext context)
3535
var root = doc.DocumentElement;
3636
doc.InsertBefore(xmlDecl, root);
3737

38+
fileSystem.Delete(wixVersionFile);
3839
using var fs = fileSystem.OpenWrite(wixVersionFile);
3940
doc.Save(fs);
4041
}

0 commit comments

Comments
 (0)