2

我希望在构建机器的队列中构建的程序集具有自定义程序集详细信息,这有助于我们跟踪查找错误。例如,我希望程序集的文件描述包含BranchName_Timestamp.rev_Changeset ex Live_20120301.7_12345

4

2 回答 2

0
  • 要获取时间垃圾邮件:

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

实际上,我没有尝试获取当前分支的名称,我们的工作方式是使用标签而不是添加分支的名称,我们添加标签的名称,并且每次发布新版本时都会添加标签,如果您是对这种方法感兴趣,我在 NCastor AutoBuilder 中构建了这个功能(我计划在大约一周内发布):

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)" />
于 2012-04-20T20:28:02.217 回答
0

请参阅我在这篇文章中的回答。基本上最好的方法是使用 TFS 对源进行索引。它很简单,您可以轻松调试(只要您拥有 PDB 和 DLL/EXE)

于 2012-04-20T12:39:59.113 回答