2010-01-27 67 views
2

設置標籤我一直在尋找到以下幾點:使用當前的日期/時間設置FileVersionInfo與CruiseControl.NET

  1. 利用現有的AssemblyInfo.cs文件改變的AssemblyFileVersion爲當前日期和時間,即YYMM.DD.HH.MM
  2. 以中使用的日期和時間(1),並用它標記源代碼(在SourceSafe中)

我已經成功地得到的MSBuild文件和CC整合,但我需要從MSBUILD文件中傳出一個變量,然後我可以將其傳遞給CC任務,以便在構建完成時標記sourcesafe。

任何想法?

+0

要回答這些查詢:我們的DLL標有我們手動定義的硬編碼版本(例如1.2.0.1)。這是AssemblyInfo.cs文件中的Assembly版本,除非我們將開發的新版本發佈到QA中,否則它不會更改。這些是公司程序,所以我不能真正改變它。 AssemblyFileVersion將由構建服務器YYMM.DD.HH.SS加時間戳。這將告訴我們DLL的編譯時間,而不管內部版本號是否有用。我查看了AssemblyInfo任務,但它生成了AssemblyInfo文件 – Graham 2010-01-28 11:19:38

回答

0

一個想法是讓您的MSBuild創建一個環境變量與它的標記,然後它將在此項目的所有後續任務中可用。不過,我想知道爲什麼你會以這種格式使用日期時間,因爲所有意圖和目的的兩個位置都已經有了日期。爲什麼不使用內部編號等有意義的標籤,然後讓MSBuild從狀態文件中獲取標籤格式並使用它來更新Assembly信息。那麼你的貼標機就會使用它。無需保留和轉移。我說時間/日期的原因是無關緊要的,因爲正常的流程會準備好告訴你日期/時間標籤和exe是創建的。爲什麼做兩次?

0

根據我的經驗,CCNet通常會生成內部版本號(在您的情況下,基於當前日期和時間)。您需要在ccnet.config文件中使用Date Labeller

MSBuild Community Tasks Project中有一個AssemblyInfo任務。您可以指定目標AssemblyInfo.cs文件以及分配給哪些屬性的值。

由CCNet生成的構建標籤通過$(CCNetLabel)變量傳遞給MSBuild。當CCNet調用MSBuild時,這會自動完成,因此您可以在MSBuild文件中開始使用$(CCNetLabel)。這需要照顧上面的#1。

#2你要在你的ccnet.config文件您SourceControl塊補充一點:

<applyLabel>True</applyLabel> 

這將導致該版本爲Visual SourceSafe中的標籤,如果你的構建成功應用。

相關問題