2

ビルドマシンのキューに組み込まれているアセンブリに、バグの検出を追跡するのに役立つカスタムアセンブリの詳細を持たせたいです。Exアセンブリのファイル記述にBranchName_Timestamp.rev_ChangesetexLive_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 でこの機能を構築しました (約 1 週間でリリースを予定しています)。

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 に答える