これまで私たちのチームは VSS を使用していましたが、TFS2010 と VS2010 に移行するプロセスの途中です。私たちのコードのほとんどは C++ であり、Boost、OpenCV、OpenSSL などの多くのサードパーティ ライブラリを使用しています。私が読んだベスト プラクティスに基づいて、複数のソリューションとプロジェクトでサード パーティのヘッダーとライブラリを処理するためのいくつかのオプションを検討しています。
すべてのサード パーティ ライブラリ用のスタンドアロン TFS プロジェクトを作成し、ライブラリごとおよびバージョンごとにソース/インクルード/出力を保存します。例えば:
Dependencies\ -> Boost\ ->boost_ver1\* ->boost_ver2\* -> OpenSSL\ ->openssl-ver1\* ->openssl-ver2\**
私の TFS ソース ツリーは次のようになります。
$\ -> Dependencies\ -> TeamProject1\ -> TeamProject2\ -> TeamProject3\
チームプロジェクトには、フォルダー ツリーのさまざまなレベルに複数のソリューションが含まれている場合があります。
dependencies.props
特定のチーム プロジェクトのすべてのプロジェクトがインポートされるチーム プロジェクトごとにファイルを準備します。その .props ファイルは、関連するサードパーティ パッケージを$(IncludePath)
およびに追加します$(LibraryPath)
。これを行うために、Dependencies プロジェクトは、ユーザーごとのマシンごとのグローバル環境変数によって定義されたフォルダーにマップされていると想定しています。
このアプローチに関していくつか質問があります。
ビルド定義のワークスペース マッピング タブで環境変数を指定できないため、ビルド エージェントで動作させる方法がわかりません。BuildDirectory var と SourceDir var がビルドごとに変更されることを理解しています。
TeamProject ソリューションの構築を開始する前に、最新の関連するサードパーティの依存関係を取得する方法。
これはまったく「良い」アプローチですか?