Skip to content

Commit fbe3999

Browse files
authored
Merge pull request #1026 from jakubro/bugfix/1025-assemblyinfo
Correctly update assemblyInfo (fix #1025)
2 parents 5ad3173 + 466357a commit fbe3999

File tree

2 files changed

+36
-3
lines changed

2 files changed

+36
-3
lines changed

src/GitVersionExe.Tests/AssemblyInfoFileUpdateTests.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,39 @@ public void ShouldReplaceAssemblyVersionWithStar(string fileExtension, string as
324324
});
325325
}
326326

327+
[TestCase("cs", "[assembly: AssemblyVersionAttribute(\"1.0.0.0\")]\r\n[assembly: AssemblyInformationalVersionAttribute(\"1.0.0.0\")]\r\n[assembly: AssemblyFileVersionAttribute(\"1.0.0.0\")]")]
328+
[TestCase("fs", "[<assembly: AssemblyVersionAttribute(\"1.0.0.0\")>]\r\n[<assembly: AssemblyInformationalVersionAttribute(\"1.0.0.0\")>]\r\n[<assembly: AssemblyFileVersionAttribute(\"1.0.0.0\")>]")]
329+
[TestCase("vb", "<Assembly: AssemblyVersionAttribute(\"1.0.0.0\")>\r\n<Assembly: AssemblyInformationalVersionAttribute(\"1.0.0.0\")>\r\n<Assembly: AssemblyFileVersionAttribute(\"1.0.0.0\")>")]
330+
[Category("NoMono")]
331+
[Description("Won't run on Mono due to source information not being available for ShouldMatchApproved.")]
332+
public void ShouldReplaceAssemblyVersionWithAtttributeSuffix(string fileExtension, string assemblyFileContent)
333+
{
334+
var workingDir = Path.GetTempPath();
335+
var fileName = Path.Combine(workingDir, "AssemblyInfo." + fileExtension);
336+
337+
VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fileSystem, variables) =>
338+
{
339+
var args = new Arguments
340+
{
341+
UpdateAssemblyInfo = true,
342+
UpdateAssemblyInfoFileName = new HashSet<string>
343+
{
344+
"AssemblyInfo." + fileExtension
345+
}
346+
};
347+
using (new AssemblyInfoFileUpdate(args, workingDir, variables, fileSystem))
348+
{
349+
fileSystem.Received().WriteAllText(fileName, Arg.Is<string>(s =>
350+
!s.Contains(@"AssemblyVersionAttribute(""1.0.0.0"")") &&
351+
!s.Contains(@"AssemblyInformationalVersionAttribute(""1.0.0.0"")") &&
352+
!s.Contains(@"AssemblyFileVersionAttribute(""1.0.0.0"")") &&
353+
s.Contains(@"AssemblyVersion(""2.3.1.0"")") &&
354+
s.Contains(@"AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"")") &&
355+
s.Contains(@"AssemblyFileVersion(""2.3.1.0"")")));
356+
}
357+
});
358+
}
359+
327360
[TestCase("cs")]
328361
[TestCase("fs")]
329362
[TestCase("vb")]

src/GitVersionExe/AssemblyInfoFileUpdate.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ public AssemblyInfoFileUpdate(Arguments args, string workingDirectory, VersionVa
2525
Logger.WriteInfo(string.Format("Found {0} files", assemblyInfoFiles.Count));
2626

2727
var assemblyVersion = variables.AssemblySemVer;
28-
var assemblyVersionRegex = new Regex(@"AssemblyVersion\s*\(\s*""[^""]*""\s*\)");
28+
var assemblyVersionRegex = new Regex(@"AssemblyVersion(Attribute)?\s*\(\s*""[^""]*""\s*\)");
2929
var assemblyVersionString = !string.IsNullOrWhiteSpace(assemblyVersion) ? string.Format("AssemblyVersion(\"{0}\")", assemblyVersion) : null;
3030
var assemblyInfoVersion = variables.InformationalVersion;
31-
var assemblyInfoVersionRegex = new Regex(@"AssemblyInformationalVersion\s*\(\s*""[^""]*""\s*\)");
31+
var assemblyInfoVersionRegex = new Regex(@"AssemblyInformationalVersion(Attribute)?\s*\(\s*""[^""]*""\s*\)");
3232
var assemblyInfoVersionString = string.Format("AssemblyInformationalVersion(\"{0}\")", assemblyInfoVersion);
3333
var assemblyFileVersion = variables.MajorMinorPatch + ".0";
34-
var assemblyFileVersionRegex = new Regex(@"AssemblyFileVersion\s*\(\s*""[^""]*""\s*\)");
34+
var assemblyFileVersionRegex = new Regex(@"AssemblyFileVersion(Attribute)?\s*\(\s*""[^""]*""\s*\)");
3535
var assemblyFileVersionString = string.Format("AssemblyFileVersion(\"{0}\")", assemblyFileVersion);
3636

3737
foreach (var assemblyInfoFile in assemblyInfoFiles)

0 commit comments

Comments
 (0)