1. 程式人生 > >VS中實時獲取SVN的版本號並寫入到AssemblyInfo.cs中(C#)

VS中實時獲取SVN的版本號並寫入到AssemblyInfo.cs中(C#)

art csharp style eve avi exec format sharp 匹配

原文:VS中實時獲取SVN的版本號並寫入到AssemblyInfo.cs中(C#)

在開發項目時,需要知道當前發布的到底是哪個版本,比較好的方式就是獲取SVN的版本來作為項目的版本。項目版本一般由主版本、次版本、內部版本、修改版本四個部分組成,我們獲取的SVN版本就作為修改版本即可。這裏需要利用SVN的SubWCRev.exe來實現,一般安裝了SVN後都會有的。SubWCRev.exe獲取SVN版本並依據模板文件,更新到相應的目標文件中。下面是具體的步驟。

1.將項目中Properties中的AssemblyInfo.cs文件復制一份,命名為AssemblyInfo.template.cs,同時將該文件的編譯屬性設置為無。設置為無是為了不讓該文件不參與編譯。

技術分享圖片

同時將[assembly: AssemblyVersion("1.0.0.538")]和[assembly: AssemblyFileVersion("1.0.0.538")]修改為[assembly: AssemblyVersion("1.0.0.$WCREV$")]和[assembly: AssemblyFileVersion("1.0.0.$WCREV$")],如下圖

技術分享圖片

其中$WCREV$是SubWCRev.exe用來匹配然後替換成最新版本號的,必須要這個名字。

2.在項目屬性的生成事件中,添加預先生成事件命令,命令內容為SubWCRev $(SolutionDir) ? $(ProjectDir)Properties\AssemblyInfo.template.cs ?$(ProjectDir)Properties\AssemblyInfo.cs,如下圖

技術分享圖片

3.編譯生成後,可以看到AssemblyInfo.cs中的版本號已經變了,如下圖

技術分享圖片

4.代碼中取得該版本號並顯示,代碼如下

 this.Text += String.Format("({0})", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString());
結果如下圖所示

技術分享圖片
轉載請註明出處


VS中實時獲取SVN的版本號並寫入到AssemblyInfo.cs中(C#)