就我而言,我创建了一个T4模板改变的AssemblyVersion和的AssemblyFileVersion。我调用了Assembly.tt模板,并将其作为一个链接文件(当您添加它时选择添加链接,而不是添加)。我所有的程序集都拉入链接的Assembly.tt文件。
然后,您可以从一个位置运行T4模板,它会更新所有的AssemblyVersion和AssemblyFileVersions。您不必调用AssemblyInfo.cs文件以将信息拖入您的dll。
为Assembly.tt文件的代码是:
<#@ template language="C#" hostspecific="true" #>
//
// This code was generated by a tool. Any changes made manually will be lost
// the next time this code is regenerated.
//
using System.Reflection;
[assembly: AssemblyVersion("4.<#= this.RevisionYear #>.<#= this.RevisionNumber #>.<#= this.RevisionTime #>")]
[assembly: AssemblyFileVersion("4.<#= this.RevisionYear #>.<#= this.RevisionNumber #>.<#= this.RevisionTime #>")]
<#+
int RevisionYear = DateTime.UtcNow.Year;
int RevisionNumber = (int)(DateTime.UtcNow - new DateTime(DateTime.UtcNow.Year,1,1)).TotalDays;
int RevisionTime = (int)(DateTime.UtcNow - new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day)).TotalMinutes;
#>
的T4模板的输出结果为:
//
// This code was generated by a tool. Any changes made manually will be lost
// the next time this code is regenerated.
//
using System.Reflection;
[assembly: AssemblyVersion("4.2016.284.1066")]
[assembly: AssemblyFileVersion("4.2016.284.1066")]
是的,这是** **得多容易!在构建时直接设置版本号,例如使用持续集成构建服务器 – 2009-10-11 09:45:27
这将是正确的方式,更改编译文件打破代码和二进制文件之间的干净信息行。 – 2009-10-11 09:53:47
非常感谢,我喜欢共享AssemblyInfo.cs文件的想法! – 2009-10-11 10:32:07