最近、ほとんどの内部ソリューションに次の一般的な構造を採用しました。
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サーバーは計画されていません。