2012年10月21日 星期日

[C# .Net] Get SVN Revision Number

在.Net或AP要把SVN的版本資訊寫入並在RunTime取得版本有以下幾個步驟

首先有幾個問題必須先知道
1.版本的資訊寫在哪呢?
2.怎麼在編譯時期把SVN的版本號寫入版本資訊中?
3.在RunTime時期怎麼取得版本資訊?

解決這三個問題就OK啦!

第一個和第二個問題在.Net和AP是用一樣的方法
下面就不一一列出解法了


1.版本的資訊寫在哪呢?
Ans:在你的專案下你可以發現一個Properties的資料夾,裡面有一個AssemblyInfo.cs檔,而版本資訊就寫在裡面囉!


2.怎麼在編譯時期把SVN的版本號寫入版本資訊中?
Ans:寫入版本可以透過建置後事件命令,來修改AssemblyInfo.cs檔的版本資訊,有以下幾個步驟:
1.在建置後事件命令輸入SubWCRev.exe "$(SolutionDir)." "$(ProjectDir)Properties\AssemblyInfo.tpl.cs" "$(ProjectDir)Properties\AssemblyInfo.cs" -f

2.在Properties的資料夾新增一個AssemblyInfo.tpl.cs的檔案,檔案內容就Copy AssemblyInfo.cs的內容:


// 組件的版本資訊是由下列四項值構成:
//
//      主要版本
//      次要版本
//      組建編號
//      修訂編號
//
// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
// 指定為預設值:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.$WCREV$.0.0")]
[assembly: AssemblyFileVersion("1.$WCREV$.0.0")]


以此範例來說,版本資訊會顯示成1.SvnVersion.0.0
如此在建置後事件就可以改版本資訊了。


3.在RunTime時期怎麼取得版本資訊?
Ans:.Net取得的方法:Assembly.GetExecutingAssembly().GetName().Version.ToString();
          AP取得的方法:Assembly.LoadFile(Application.ExecutablePath).GetName().Version.ToString();

沒有留言:

張貼留言