最近、ほとんどの内部ソリューションに次の一般的な構造を採用しました。
SolutionRoot
Interfaces
Models
Services
Repositories
Web
ここServicesで、、RepositoriesおよびプロジェクトWebへの直接参照のみがInterfacesありModelsます。すべての依存関係はIoCコンテナを介して管理されます(内部フレームワークでカスタムラッパーを作成しました)。もちろん、独自の外部依存関係のセットがある場合もありますServices。Repositories
これで、MVCプロジェクトをデプロイするときにWeb、必要なすべてのDLLをbinフォルダーに含める必要があることは明らかです。プロジェクトから特定の実装への直接の依存関係がないため、Webプロジェクトとプロジェクトの単純なビルド後スクリプトを作成することにServicesなりました。このスクリプトはRepositories、関連するすべてのDLLを(またはその他の消費プロジェクト)のbinフォルダーにコピーします。 Web)。次に、関連するDLLをプロジェクトに含め、それらをコンテンツとしてマークする必要があります。
明らかに、これは展開への依存関係を管理するための最も快適な方法ではありません。
私が知りたいのは、この問題を解決するためのより良い方法があるかどうかです。
注:現時点では、CIサーバーはありません。また、近い将来、CIサーバーは計画されていません。