私のビルドが失敗している理由を調べようとしていますので、ビルドコールの.projに追加しました:TFSビルド(TFSサーバー2017とビルドエージェント2013)でビルドパラメータを保持する方法
<Message Text="System Drive: $(SystemDrive)"/>
<Message Text="BuildAgtentId: $(BuildAgentId)" />
<Message Text="BuildDefinitionPath: $(BuildDefinitionPath)" />
<Message Text="SourceDir: $(SourceDir)" />
<Message Text="SrcDir: $(SrcDir)" />
<Message Text="BuildDefinitionPath: $(BuildDefinitionPath)." />
<Message Text="BuildDefinitionId: $(BuildDefinitionId)." />
<Message Text="TF_BUILD_BUILDDIRECTORY: $(TF_BUILD_BUILDDIRECTORY)" />
これで、$(SourceDir)がC:\ Builds \ $(BuildDefinitionId)に解決されると仮定しました。これは、エージェント用の作業ディレクトリ設定にあるためです。私はまた、MSBuildのパラメータに変数を設定:
/p:SrcDir=$(SourceDir)
をしかし.projが、ここで実行したときに私の出力です:
System Drive: C:
BuildAgtentId:
BuildDefinitionPath:
SourceDir:
SrcDir: $(SourceDir)
BuildDefinitionPath: .
BuildDefinitionId: .
TF_BUILD_BUILDDIRECTORY: .
は、だから、としてだけで$(システムドライブ)がビルド中に持続すると思われます。また、MSBuildの引数に設定されたパラメータは、正しく設定されていないようです(SrcDir)。ビルド中にこれらの変数にアクセスするにはどうしたらよいですか?他のプログラム(つまりattrib)を呼び出してファイルの場所を渡す必要があり、何も存続しないようです。
記事thisに基づいて、私はTF_BUILDDIRECTORYが機能することを確かめましたが、そうではありません。
私は、これは動作するはずと言いthis記事使用してみました:
<GetBuildProperties TeamFoundationServerUrl="$(TFSTeamFoundationServerUrl)" BuildUri="$(BuildUri)">
<Output TaskParameter="BuildDirectory" PropertyName ="TFSBuildDirectory" />
<Output TaskParameter="TeamProject" PropertyName="TFSTeamProject" />
</GetBuildProperties>
<Message Text="BuildLocation: $(TFSBuildDirectory)." />
<Message Text="TeamProject: $(TFSTeamProject)."/>
をそしてTeamProjectの作品ながら、BuildDirectoryはしていません。だから私はこれを得る:
BuildLocation: .
TeamProject: MDRVIDEOTOUCH.
私はTF_BUILD_BUILDDIRECTORYを試してみましたが、それは間違って参照していない限り、空白にも見えます。私は$(TF_BUILD_BUILDDIDI RECTORY) - そうですか? –