2009-03-02 13 views
2

common.targetsファイルを、チームビルドで使用したいTurbBuild.projファイルにインポートするいくつかの一般的なmsbuildターゲットとともにセットアップしようとしています。私はこれを達成するための最善の方法は何ですか?各TFSBuild.projファイルのすぐ隣にcommon.targetsを格納する必要があるので、各チームビルドのターゲットファイルが重複しているか、別の方法がありますか?私はむしろ各ビルドマシンにターゲットファイルを置くことはしません。チームビルドの共通ターゲットはどこに保存する必要がありますか?

+0

ここでいくつかの良い答えがあります。彼らがなぜ働かないのか、それを受け入れるのかについてコメントしないでください..... – Vaccano

+1

あなたは正しいです。完了しました。ご回答有難うございます。 – Fadeproof

答えて

3

チームビルドでは、TFSBuild.projを呼び出す前にブートストラップフェーズがあります。 TFSBuild.projと同じディレクトリ内の他のファイルのみがソース管理からダウンロードされます。 だから、あなたがソース管理下にあるためにあなたのターゲットファイルをしたい場合、あなたはTFSBuild.proj

More details in this answer

と同じ場所でそれを配置する必要があり、私はそれを試したことがない、しかし、あなたは置くことができるかもしれませんネットワーク共有上のターゲットファイルを取得し、unc共有を使用してインポートします。何かのように

<Import Project="\\anothermachine\share\something.targets"/> 

しかし、それはビルドアカウントとデスクトップビルドを実行しているすべての人がそのネットワーク共有にアクセスする必要があります。

2

一般的な.targetsファイルの目標は、スクリプトの重複を減らすことです。ソース管理下にこのファイルのコピーが複数ある場合は、それらを変更する必要が生じた場合(.exeパスを更新するために)どうしますか?個人的には、他のすべてのビルドスクリプトが参照できる共通ファイルの別の場所を使用することをお勧めします。唯一の欠点は、このファイルへのパスをハードコーディングする可能性が高いことです。

2

これらは、MSターゲットと一緒に$ Volume \ Program Files \ MSBuildに保存できます。これを行うメリットは、組み込みの既知のメタデータ "$(MSBuildExtensionsPath)\ Path \ To \ Your \ Targets"を使用して相対パスを作成できることです。

+0

(+1)ドキュメントによれば、「カスタムターゲットファイルを置くのに便利な場所です」というMSBuildExtensionsPathはわかりませんでした。 http://msdn.microsoft.com/en-us/library/ms164309.aspx – Pedro

4

ソース管理で好きな場所に置きます。ターゲットを使用する前に、このようなあなたのTFSBuild.projファイルから取得を行います。

<PropertyGroup> 
    <!--Path to the TFS Command Line (used for checkin and out)--> 
    <TxTf>&quot;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\tf&quot;</TxTf> 

    <WorkingDirectory>C:\YourPathHere<WorkingDirectory> 
    <CustomProjTFSDir>&quot;$/YourProj/YourCustomProjPath&quot;</CustomProjTFSDir> 
</PropertyGroup> 

<Exec WorkingDirectory="$(WorkingDirectory)" 
     Command="$(TxTf) get $(CustomProjTFSDir)"/> 

この作業の鍵はセットアップにカスタムのものを指すビルドエージェントのユーザーのためのワークスペースです。このディレクトリは、通常のビルドと同じスペースにあるべきではありません。

Vaccano

+0

Execコールはどこに配置しましたか?ターゲットの中に置くと、インポートが最初に試行され、失敗します。ルートの下に直接置いてみると私はエラーになります。ファイルをインポートしようとする前にファイルを取得するにはどうすればよいですか? – Elezar

+0

@Elezar - 5年前に私はあなたの質問に答えることができました。私は長い間MS Buildをあまりしていません。私は今思い出さない。ごめんなさい。 – Vaccano

+0

さて、私は新しく、この答えがどれくらい古いかを考えれば長時間の撮影でした。しかし、お返事ありがとう! – Elezar

関連する問題