2011-12-22 7 views
2

TFS 2010と私のビルドプロセスには他に類を後に別のタスク1を実行する必要があります。TFS 2010:異なるビルドとコマンドラインタスクを順番に実行しますか?

  1. ビルド第一のプロジェクトを溶液中で

  2. (プロジェクトを公開するために)コマンドライン経由のMSBuildを実行します

    コマンドラインでサードパーティのツールを実行する(バイナリを難読化する)

  3. ソリューション(InstallShieldプロジェクト)で2番目のプロジェクトを構築する

どうすればこの問題を解決できますか?ビルド定義でいくつかのプロジェクトを定義できますが、これらのビルドステップの間にいくつかのコマンドラインタスクを呼び出すにはどうしたらいいですか?ビルド定義のMSBuildArguments:各プロジェクト/ソリューションのmsbuildコールごとにこれらの引数がありますか?まず

おかげ

コンラート

答えて

3

は、あなたのビルド定義に代わり、一つの大きな*.slnの明確な*.*proj追加する必要があります - または(より良い)を、それらがビルドを取得するために、複数の*.sln &順序を構築ビルドの定義で使用します。
したがって、Project1.sln,Project2.slnなどをビルドからのみ使用するように構成することができます。

これに加えて、ビルドプロセステンプレートを変更する必要があります。デフォルトでは
あなたがそのような何かを得るには、それは大きな内の各セットのプロジェクト/ソリューションを実行foreach
enter image description here

良い方法は、すべてのカスタムアクションはInvokeProcess活動として設定されているシーケンス、としてこれを強化するために、次のようになります。
enter image description here

ISDEVが二度目(を実行しながら、(Project1.slnが構築取得)を初めて実行Publish & Dotfuscatorように明らかに、あなたは、ここでフローコントロールを挿入する必要がありますはビルドを取得します)。以下のサンプルでは、​​Sequenceに &をパックしたPublish & Dotfuscatorを使用しました。
最後に、何らかの種類のカウンターが必要です。最も即座に選択できるのは、新しいInt32変数をデフォルト== 1で設定し、実行中に手動で増やすことです。この下のサンプルではAssign下で行われます。
enter image description here

変更ビルド定義とともにComplie the Projectのこの最後のオーバーライドは、あなたが後に「再何を取得する必要があります。

+0

うわー...なんとクールな答え...これを試してみます:-)ありがとう。 – Konrad

+0

私はそれがあなたのために働くことを望む! – pantelif

1

チームビルドの定義には、slnとmsbuildプロジェクトファイルのリストがあります。 InstallShieldプロジェクトを独自のソリューションに分割するだけで(ほとんどの開発者はInstallShieldのコピーを持たないでしょう)、ステップ2と3のmsbuildターゲットファイルを作成して、ソリューション定義1をビルド定義に伝えて、ターゲットファイルとソリューション2。

また、私はワークフローでこれをしないだろう解決策1.

でのプロジェクトのいずれかのポストビルドイベントにターゲット・ファイル内のものを置くことを選択することができます。

関連する問題