2012-04-20 58 views
2

我想要在構建機器的隊列中構建的程序集具有自定義程序集細節,這有助於我們跟蹤發現錯誤。 防爆我想組裝的文件說明包含BranchName_Timestamp.rev_Changeset前Live_20120301.7_12345包含文件描述的程序集BranchName_Timestamp_Changeset

+0

你打造成爲一個TFS構建服務器上? – abatishchev 2012-04-20 12:42:57

+0

是的,我們建立在TFS構建服務器上 – 2012-04-20 12:53:30

回答

0

見我的答案在this post。 基本上最好的方法是用TFS索引源代碼。這很簡單,你可以很容易地調試(只要你有與DLL沿着PDB/EXE)

0
  • 要獲得timespam:

http://msbuildtasks.tigris.org/

<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Time" /> 

<MSBuild.Community.Tasks.Time Format="MM.dd.yyyy.HH.mm"> 
    <Output TaskParameter="FormattedTime" PropertyName="_time_spam" /> 
</MSBuild.Community.Tasks.Time> 
  • 要獲得最新的變更集:

https://stackoverflow.com/a/10252772/1268570

  • 要獲得當前分支的名稱:

你可以查看以下鏈接

http://msdn.microsoft.com/en-us/library/dcbx5yce.aspx

其實我沒有試圖讓當前分支的名字,我們的工作方式是使用標籤,而不是添加分支的名稱,我們添加標籤的名稱,每當我們發佈新版本時,我們都會標籤,如果您對這種方法感興趣,我在NC中構建了這個功能阿斯特自動編譯(我打算釋放約一週):

https://github.com/jupaol/NCastor/tree/develop/Solutions/NCastor.AutoBuilder/NCastor.AutoBuilder.Runner/Targets/Labels

把所有在一起:

<PropertyGroup> 
    <InformationalVersion>$(SemanticVersion) $(BranchName)_$(_time_spam).rev_$(TFSRevisionVersion)</InformationalVersion> 
</PropertyGroup> 

<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.AssemblyInfo" /> 

<MSBuild.Community.tasks.AssemblyInfo OutputFile="$(AssemblyVersionFilePath)" 
      CodeLanguage="C#" 
      AssemblyFileVersion="$(FileVersion)" 
      AssemblyInformationalVersion="$(InformationalVersion)" 
      AssemblyVersion="$(SemanticVersion)" /> 
+0

嗨,非常感謝。我正在檢查答案。一旦我完成,我會讓你知道 – 2012-04-23 05:47:20