2011-02-10 8 views
1

私たちはSVN/CruiseControl .NETからTFS 2010に移行しています。私は次のシナリオで自動ビルドをセットアップする方法について頭を下ろしています。マルチソリューションビルドの整理

プロジェクトのそのターン基準に多数、いくつかの解決策が含まれている大規模なコードベースを想定:この例では、溶液1参照プロジェクトA、プロジェクトB、プロジェクトCプロジェクト、したがって

enter image description here

D.ソリューション2は、プロジェクトCとプロジェクトEを参照しています。

ビルドシステムとしてTFSを使用する場合、TFS 2010内でこのタイプのセットアップを構成する最も良い方法は何ですか。具体的には、プロジェクトEのみが変更された場合、ソリューション1を構築するTFSを避けたいのですが、逆に、プロジェクトCが変更されたときにソリューション1とソリューション2の両方を構築したいと考えています。

誰かが提案できる優れたドキュメントやアイデアはありますか?

答えて

2

これはTFSで簡単に行うことができます。これはほぼ自動的に行われます。

ビルドを作成するときに、「ワークスペース」が何であるかを指定します。これはビルド用のコードを含むTFS内のフォルダです。ビルドトリガーは、ファイルが "ワークスペース"セクションにリストされているフォルダにチェックインされた場合にのみ起動されます。

Workspace

だから2のビルドになるだろう:

  • 第二のビルドプロジェクトA、B、CおよびDを含むフォルダとワークスペースのセットアップを持っているソリューション1用
    • ワンSolution2になります。そのワークスペースには、プロジェクトCとEのフォルダがあります。

    これらのプロジェクトを「継続的統合」オプションで起動するように設定すると、探しているものだけを取得できます。 (ソリューション1 & 2は、プロジェクトCが変更されたときにビルドされますが、プロジェクトA、BまたはDが変更されたときにSolution2のみがビルドされ、ソリューション1がビルドされます)。

  • +0

    素晴らしい - それはまさに私が聞きたかったものです! –

    -1

    Teambuild/TFSを使用して再検討してください。私が知りたいと思っているものではありません... これをsvnで簡単にサポートし、共有ビルドされたDLLをチェックできました。

    ビルドで同じワークスペースを使用する場合は、2番目のビルドをビルドして再ビルドしないように設定できますか? この方法では、コンパイルがはるかに迅速で、ソーストリガーが関連するプロジェクトを除外していることを確認する必要があります。

    クルーズコントロール.netをもう使用しない理由がわかりましたが、チームシティーを使うことができます。これははるかに良いです。 幸運

    +0

    これは非常に誤解を招くような回答です。彼が望むことをやることは、TFSでは非常に簡単です(些細なことです)。これは、TFSでのatuobuildの作成の一環として自動的に実行されます。 (あなたは実際にTFS Buildを使っていますか?) – Vaccano