2016-09-01 6 views
0

以下のように、私のTeamProjectのソースにある私のすべてのソリューションについて、複数のソリューションと共通の参照があります。TFS 2012での継続的インテグレーショントリガーの問題

TestTeamProject 
    Source 
     SolutionA 
     SolutionB 
     SolutionC 
     References 

すべてのソリューションは参照を使用しており、各ソリューションには個別のビルド定義があります。ビルドがトリガされるたびにカスタムアクティビティが実行され、それぞれのバイナリがReferencesフォルダにチェックインされます(EX:ビルド定義がAディレクトリに設定されている場合、出力dllをReferencesフォルダにコピーします)。お互い。

今、SolutionAのビルド定義で継続的な統合トリガを有効にしようとしましたが、ループに入り、無限のビルドをトリガしています。

理由:私は、ソリューションAのビルド定義のソース設定で参照を持っているので、ビルドが完了すると、参照が私の活動によってチェックインされ、これまでとき、それが再びトリガされたCIビルド

CIトリガ機能を有効にしてこの動作を制限する方法はありますか? CIビルドの設定中にソース管理パスにフィルタを使用するために使用できる拡張機能はありますか?

答えて

2

バイナリをソース管理に組み込むのではなく、NuGetパッケージを使用してバイナリ依存関係をNuGetパッケージとして参照する必要があります。

+0

はいダニエルは正しいですが、ソースにすでに参照を使用しているプロジェクトが多数あるため、それを変更したり、パッケージを管理するNuGetサーバーを設定することも難しくなります。 – Pramod

0

クロージャーをソース設定作業フォルダに含めると、組み込みおよび除外するバージョンコントロールパスを選択できます。 (注意:あなたはこれらのフィルタは、あなたのTFVCワークスペースのマッピングと一致していることを確認することをお勧め)あなたの状況については

をご参照フォルダ enter image description here

をクロークすることができますし、参考文献にDLLを使用しているため。 DanielがNugetのようなパッケージ管理システムを使用して依存関係をホストして配布することを提案するのと同じように、ソース管理からそれらを除外し、無限ループを避けることができます。

+0

クロッキングが失敗します。ビルドサーバーにコピーされる参照。ビルドされるソリューションはReferencesフォルダのバイナリに依存します。 inbuiltトリガ(ビルド定義で)の動作を更新し、自分の目的に合わせてカスタマイズし、ビルドをトリガしないようにソースコントロールフォルダを除外する方法はありますか? – Pramod

+0

TFSでCIトリガーをカスタマイズすることはできません。さらに、あなたは私が何を意味しているのか誤解しました。クローキングが最初のステップですが、最後にNugetなどのパッケージ管理システムを使用して依存関係をホストして展開する必要があります。このような状況を回避するために、TFSソース管理(通常はNugetとGACを使用)でDLLをチェックインすることはお勧めできません(無限ループ)。 –

関連する問題