非常に大規模なコード ベース、主に C++ を VSS から SVN に移行することを考えています。その演習の一環として、コードをより小さなプロジェクトに分割して、個別に作業できるようにしたいと考えています。最大の障害は、1 つのプロジェクトが他のプロジェクトからの dll (およびヘッダー) を必要とするプロジェクトの依存関係を処理することです。
現在、開発者は VSS から必要なプロジェクトを取得し、それらをローカルでビルドします。プロジェクト ファイルは、必要なものがすべてチェックアウトされていることを前提としており、それに対して相対的です。特に異なるバージョンのものが必要な場合は、明らかに悪夢です。
過去数年間、私は maven に甘やかされており、過去の大規模な C++ は UNIX と Linux でした。私は nuget のようなものを調べましたが、SVN とビジュアル スタジオ ビルド ファイルを使用するだけにソリューションを抑えることにしました。
私の好みの解決策は、SVN 外部を使用してプロジェクトに必要なヘッダーとバイナリをタグから提供し、プロジェクトが変数を介してそれらを参照するようにすることでした。それは簡単なことです。私が抱えている問題は、ライブラリの変更など、依存しているプロジェクトで変更が必要な場合です。
Product1 というプロジェクトと、CommonLib1 という別のプロジェクトがあるとします。私がやりたかったことは、SVN 外部提供ファイルを参照するデフォルトの変数を介して、Product1 参照 CommonLib1 のプロジェクト ファイルを提供することでした。次に、CommonLib1 の変更が必要な場合、開発者はそのプロジェクトをチェックアウトし、それを自分のワークスペースにロードし、ビジュアル スタジオに依存関係を追加します。そのプロジェクトは、Product1 のセットをオーバーライドする同じ変数を定義します。
私が得ることができる最も近いのは、環境変数を設定して設定をオーバーライドすることですが、手動でセットアップしてVSを再起動する必要があります。部分的には経験の浅い開発者/プロジェクトの初心者のためだけでなく、既存の開発者のためにも、作業をより高速に進められるように、可能な限り自動化して生活を楽にしたいと考えています。