背景: 私のチームは、かなり経験の浅い 3 人の開発者で構成されています。社内向けソフトウェアの開発を行っております。現在、いくつかの小規模で個別のソリューションがあります。これらの多くは相互に依存しています。現在、これらの依存関係は、それぞれのリリース フォルダー内の出力 dll を参照することによって作成されています。更新は、依存するソリューションを手動で再構築することによってプッシュされます。
例: ソリューション A はソリューション B の機能を使用します。接続は、ソリューション A が ...\Release\B.dll を参照するように行われます。B への変更は、ソリューション B を構築し、次にソリューション A を構築することによって伝播されます。
これは以前は問題なく機能していましたが、現在は手動の (気が遠くなるような) "バージョン管理システム" (folder1、folder2、folder2New...) から適切なバージョン管理システム (git) の使用に移行しています。
.dll のバージョン管理は推奨されないようです。これは、誰かが A の新しいバージョンをビルドするたびに、B の最新バージョンを入手するために B (およびおそらく 5 つの他のソリューション) もビルドする必要があることを意味します。
これを行うためのより良い方法がなければならないと考えています。関連するソリューションを 1 つのマスター ソリューションに結合することを検討してきましたが、Visual C# Express (使用している) でこれを行う方法がわかりません。
ついに質問があります:
すべてを順調に構築するマスター ソリューションはありますか? -- MSDN からはそう思われますが、Visual C# Express 2008 でこれを行う方法がわかりません。
これは Visual C# Express でも可能ですか? そうでない場合、問題を管理する良い方法は何ですか?
編集以下の素晴らしい提案に感謝します。これが私がやったことの要約です。
要するに、質問に対する答えは、「はい」と「まあまあですが、ほとんどはい」です。私は次のように実装しました: 依存関係のアイデアを得るために、以下の提案に従って実行し、dll または exe の名前からすべての依存関係を指す矢印を使用して、バイナリ製品のマップを描きました。
プロジェクトごとに、対応するソリューションを開きました(最初は1 つのソリューション pr プロジェクトがあったため)。次に、グラフに表示されたツリー構造に各依存関係のプロジェクト ファイルを追加し (ソリューション エクスプローラーでソリューションを右クリックして)、依存関係の依存関係なども含まれるようにしました。次に、古い参照 (.dll を直接指している) を削除し、代わりにプロジェクトへの参照を追加しました。
重要な結果は次のとおりです。
- プロジェクトのソリューションがビルドされると、すべての依存関係がビルドされるため、展開時に、すべてのビルド製品が自動的に最新バージョンであることがわかります。