使用IoC管理的依赖项部署ASP.NET MVC项目

时间:2013-01-29 12:40:40

标签: .net asp.net-mvc inversion-of-control web-deployment

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

SolutionRoot
    Interfaces
    Models
    Services
    Repositories
    Web

其中ServicesRepositoriesWeb只能直接引用InterfacesModels个项目。所有依赖项都通过IoC容器进行管理(我们已在内部框架中创建了自定义包装器)。当然,ServicesRepositories可能有自己的外部依赖关系集。

现在,当我们部署Web MVC项目时,我们显然需要在 bin 文件夹中包含所有必需的DLL。因为Web项目没有直接依赖于特定的实现,所以我最终为ServicesRepositories项目编写了一个简单的构建后脚本,将所有相关的DLL复制到Web(或任何其他消费项目)的 bin 文件夹中。然后,我需要在项目中包含相关的DLL,并将它们标记为Content。

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

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

注意:此时,我们没有CI服务器,并且在不久的将来都没有计划。

1 个答案:

答案 0 :(得分:0)

如果满足以下所有假设:

  • 您团队中的惯例是永远不要直接在Web上使用服务和存储库中的实现
  • 这个惯例很好理解并遵循
  • 您不需要为不同的部署引用不同的实现

然后选择简单的方法,并在Web项目中引用这些项目。

否则,你会遇到帖子构建事件。