就我而言,我創建了一個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