18

私が継承したプロジェクトでは、元の開発者が Visual Studio プロジェクトで多くのビルド後のイベントを使用して、VS 内でビルドするときに DLL などをコピーしていました。

これらのものを TFS 2010 ビルド システムに移行しようとしている今、これはいくらかの悲しみを引き起こしています。

新しい「継続的な」プロジェクト構成を作成し、その構成でVisual Studioからビルド後のイベントを除外できることを望んでいましたが、プロジェクト構成に基づいてこれらの呼び出しを構成できないようです....

何か案は?TFSビルドで実行していることを確認してから、それらのCMDファイルをスキップすることができるものはありますか? どんなアイデアでも大歓迎です!

4

3 に答える 3

14

私はこれを行うために同様のアプローチを使用します。各プロジェクトのビルド後の手順に次を追加します。

if '$(TeamBuild)'=='True' exit 0

次に、ビルド定義を構成するときに、次を追加するだけです。

/p:TeamBuild=True

...MSBuild 引数に。

これにより、プロジェクト内のすべての構成とビルド定義を保持する柔軟性が得られます。

于 2011-04-12T17:08:19.333 に答える
6

チーム ビルド サーバーに環境変数を設定し、ビルド後の手順にチェックを書き込んで、その環境変数をチェックするとどうなるでしょうか。環境変数が設定されている場合は、TFS ビルドで実行していることがわかるため、ビルド後の手順を実行するコマンド ファイルをスキップする必要があります。

ビルド後のすべてのステップを 1 つのスクリプトにまとめて、そのスクリプトの先頭にある環境変数を確認するだけで済みます。

または、逆の方法でチェックを TFS ビルド スクリプトに組み込むこともできます。TFS ビルドで環境変数を確認する方法については、こちらを参照してください。

したがって、TFS ビルド スクリプトには次のようなものがあります。

<RunScripts Condition=" '$(RunScriptsServerVar)' != '' ">
            the environment var is NOT set, so run your scripts since we aren't in
            a TFS build
</RunScripts>
于 2011-02-21T17:18:25.243 に答える