部署具有IoC管理的依赖项的ASP.NET MVC项目

部署具有IoC管理的依赖项的ASP.NET MVC项目,.net,asp.net-mvc,inversion-of-control,web-deployment,.net,Asp.net Mvc,Inversion Of Control,Web Deployment,我们最近为大多数内部解决方案调整了以下通用结构: SolutionRoot Interfaces Models Services Repositories Web 其中服务,存储库和Web仅直接引用接口和模型项目。所有依赖项都通过IoC容器进行管理(我们在内部框架中创建了一个自定义包装器)。当然,服务和存储库可能有自己的外部依赖集 现在,当我们部署WebMVC项目时,我们显然需要在bin文件夹中拥有所有必要的DLL。由于Web项目与特定实现之间没有直接的

我们最近为大多数内部解决方案调整了以下通用结构:

SolutionRoot
    Interfaces
    Models
    Services
    Repositories
    Web
其中
服务
存储库
Web
仅直接引用
接口
模型
项目。所有依赖项都通过IoC容器进行管理(我们在内部框架中创建了一个自定义包装器)。当然,
服务
存储库
可能有自己的外部依赖集

现在,当我们部署
Web
MVC项目时,我们显然需要在bin文件夹中拥有所有必要的DLL。由于
Web
项目与特定实现之间没有直接的依赖关系,因此我最终为
服务
存储库
项目编写了一个简单的构建后脚本,将所有相关DLL复制到
Web
或任何其他消费项目的bin文件夹中. 然后我需要在项目中包含相关的DLL,并将它们标记为内容

显然,这不是管理部署依赖关系的最舒适的方法

我想知道的是是否有更好的方法来解决这个问题


注意:目前,我们没有CI服务器,近期也没有计划使用任何CI服务器。

如果以下所有假设都成立:

  • 团队中的惯例是永远不要直接从Web在服务和存储库中使用实现
  • 这一公约得到充分理解和遵守
  • 您不需要为不同的部署引用不同的实现
然后选择简单的方法,在Web项目中引用这些项目

否则,您将陷入构建后事件