7

次のように TFS Build によってビルドされたプロジェクト参照を使用する大規模な VS ソリューションがあります。

Solution
- Project 1
- Project 2
- Project ...
- Project N

ソリューションが大きすぎるため、日常的に使用するいくつかの小さなソリューションがあります。

SubSolution
- Project 1
- Project 19

問題は、SubSolution に取り組んでいる開発者が、プロジェクト参照が見つからないためにビルドされていないことに気づき、ファイル参照を使用するようにプロジェクトを変更することです。

これにより、これらのファイル参照がまだビルドされていないため (プロジェクトが同じソリューション内にある場合でも)、これらのファイル参照を見つけることができない TFS ビルドが中断されます。この 2 種類の参照の間の綱引きを回避する方法はありますか。ソリューションを分割する正しい方法は何ですか?

4

2 に答える 2

2

ビルドをどのように編成するかに関係なく、開発者は参照がどのように機能するかを理解する必要があり、ビルド プロセスに変更を加える意図がない限り、参照を変更するときはそれらの変更をチェックインしてはならないことに注意する必要があります。

ビルドの編成に関して - Dmytrol が言うように、プロジェクト参照はソリューション間で機能するはずです (ターゲットが既にビルドされている限り、ファイル参照の場合も同様です)。

私のアドバイスは、プロジェクトを実行可能な小さなソリューションにグループ化し、それらのソリューション内でプロジェクト参照を使用することです。メイン ソリューション ファイル / ビルドもプロジェクト参照を使用できますが、小規模なソリューション間のプロジェクト参照を維持するのが難しすぎる場合は、代わりにファイル参照を使用し、プロジェクトの依存関係またはプロジェクトのビルド順序 (Visual 内でアクセス可能) を通じてビルド順序を制御できます。ソリューション内のプロジェクトを右クリックして Studio を開きます)。

于 2010-06-18T11:44:30.673 に答える
2

ソリューションを分割する正しい方法は何ですか?

Patterns & Practices チームによる TFS ガイドの次の章を確認してください。

第 3 章 - ソース管理におけるプロジェクトとソリューションの構造化

「パーティション化されたソリューション」シナリオ (実際に実装しようとしていると思います) に対するこのメモに特に注意してください。

以前のバージョンの Visual Studio とは異なり、Visual Studio 2005 は MSBuild に依存しています。すべての参照プロジェクトを含まないソリューション構造を作成しても、エラーなしでビルドできるようになりました。マスター ソリューションが最初にビルドされ、各プロジェクトからバイナリ出力が生成されている限り、MSBuild はソリューションの範囲外のプロジェクト参照を追跡し、正常にビルドできます。これは、ファイル参照ではなくプロジェクト参照を使用する場合にのみ機能します。この方法で作成されたソリューションは、Visual Studio ビルド コマンド ラインおよび IDE から正常にビルドできますが、既定ではチーム ビルドではビルドできません。チーム ビルドで正常にビルドするには、すべてのプロジェクトと依存関係を含むマスター ソリューションを使用します。

于 2010-06-18T11:20:38.470 に答える