私はVS/TFS2010でチームビルドを設定しようとしています。私は、MSBuildの引数には、以下を含める:TFS2010のMSBuild引数で変数置換を行う方法は?
/p:Changeset=BuildDetail.SourceGetVersion
私はMSBuildのは「BuildDetail.SourceGetVersion」を展開したいです。私はxamlを編集してこれを行う方法を知っていますが、私はそれを必要とせずに動作させる方法があることを望んでいます。何か案は?
私はVS/TFS2010でチームビルドを設定しようとしています。私は、MSBuildの引数には、以下を含める:TFS2010のMSBuild引数で変数置換を行う方法は?
/p:Changeset=BuildDetail.SourceGetVersion
私はMSBuildのは「BuildDetail.SourceGetVersion」を展開したいです。私はxamlを編集してこれを行う方法を知っていますが、私はそれを必要とせずに動作させる方法があることを望んでいます。何か案は?
あなたは、それは変更になる場合がありますので、私は、アセンブリへのパスを計算するためのプロパティを使用したい、と開発者のマシン上にあるため、それがインストールVisual Studioの下になりますTFSのタスク
<UsingTask
TaskName="Microsoft.TeamFoundation.Build.Tasks.GetBuildProperties"
AssemblyFile="C:\Program Files\Microsoft Team Foundation Server 2010
\Tools\Microsoft.TeamFoundation.Build.ProcessComponents.dll"
/>
<Target Name="MyTarget">
<GetBuildProperties
TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
BuildUri="$(BuildUri)">
<Output TaskParameter="BuildNumber" PropertyName="BuildNumber" />
<Output TaskParameter="SourceGetVersion" PropertyName="SourceGetVersion" />
</GetBuildProperties>
</Target>
を実行する必要があります(PrivateAssembliesで私は思う)。
このプロパティはターゲット実行から動的に取得されるため、このプロパティに基づいて行う処理は動的にも計算する必要があります。 $(SourceGetVersion)に基づいてグローバルに静的なプロパティを作成することはできません。もちろん、それを計算してからMSBuildタスクを使って実際のビルドを実行することもできますが、他のプロパティを渡す必要があるので面倒です。より良いものをお望みなら、私が行ったところでXamlを書き直してMSBuildアクションに渡します。
あなたはTFS 2010について尋ねました。
しかし、TFS 2013以降、これを行う方法は非常に簡単です!
MsBuildでTF_BUILD_SOURCEGETVERSION varを使用すると、TFS Buildから渡されます。
参照のためにTF_BUILD environment変数を参照
ここでxamlを共有できますか? – Mrchief