2016-10-21 6 views
0

私は20以上のプロジェクトで大きなソリューションを持っています。それらのほとんどは、ドメイン固有のプロジェクトに依存することなく、特定の慎重に定義された機能セットを実行するユーティリティタイプのプロジェクトです。大きなソリューション(20以上のプロジェクト)はどのように分割する必要がありますか?

この解決策はGithubにチェックインされます。

新しいソリューションを作成する必要があり、元の大規模ソリューションの2〜3つのプロジェクトを使用する必要があります。これらのプロジェクトを大規模なソリューションから切り離し、それらを必要とする両方のソリューションで利用できるようにするにはどうすればよいですか?

これを行う典型的な方法は何ですか?ベストプラクティス?

私はこれを描くのに苦労しているので、いくつかの実践的なヒント、素人、そして多分ステップバイステップで役立つでしょう。

+0

有権者を閉じますか?真剣に?今夜退屈? – richard

+1

あなたがここで取ることができるアプローチはたくさんありますが、それぞれの長所と短所があり、シナリオに特定の答えを提供することが難しく、 "広範な"と "意見に基づいた"という質問があります。いくつかの提案:あなたの共通のコンポーネントを独自のNuGetパッケージに移動することを見てください(実際には簡単です)。 CommonBinaryソリューションを用意し、デプロイされたバイナリを使用してください。 –

答えて

1

大型ソリューション? 100以上のプロジェクトソリューションはいかがですか?この質問は、「広すぎる」と「意見に基づく」と分類することができます。それにもかかわらず、私はビルマスターですので、私はあなたにいくつかのヒントを与えます。

あなたは、「コア」のプロジェクトを識別する一つの解決策にそれらを入れて、今、同じbin

--Solution1 --bin --Proj1 --Proj2 --Products --Prod1 --Prod1Solution --Proj3 --Proj4 --Prod2 --Prod2Solution --Proj5 --Proj6 ...

からのDLLから参照しながらbinにそれらを構築することができた場合は、あなたが持っていることがあります」一部のコアアセンブリを使用する製品のように、「製品プロダクトの終了」を選択します。これらの「製品」は上記Solution1と同じブランチの下にあり、別のフォルダの下にあることがあります。製品ごとにソリューションを作成し、それが小さい場合でもプロジェクト参照を使用できますが、依然としてbinからDLLを参照しています。そして、例えば、bin\Product1の下にそれを構築することができます。

もう1つの選択肢 - ソリューションフォルダを持つ1つの壮大なソリューションを用意し、セット全体を一緒に構築すること。

これは高度にカスタマイズされたビルドを可能にするため、最初のオプションを使用します。私はプロジェクトの基本セットを構築し、カスタムソリューションを書く開発者に配布することができます。あるいは、コア製品を使ってセット全体を構築することもできます。

関連する問題