2012-09-12 63 views
10

因此,当您将MVC安装到Visual Studio中时,会将MVC dll放入GAC中。因此,他们不需要在项目的文件系统中来允许项目构建。使用ASP.Net进行持续集成MVC

当我们部署这种生活和我们的持续集成服务器的MVC和剃刀必需的依赖关系都没有版本控制。毫无疑问,为什么微软使这个如此复杂,超出了我的想象。

我一个自动化尽我所能,所以我想知道最好的方法是什么,解决了丢失的DLL问题。

现在的ASP.Net MVC项目,我已经解决了这个使用斌部署在这里http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx提到的菲尔哈克的博客。这工作正常,但我也有一些库项目引用System.Web.Mvc不会在生成服务器上编译,并且Visual Studio中的bin部署选项不可用于库项目。

我认为做正确的事情是使用的NuGet

Install-Package Microsoft.AspNet.Mvc -Version 3.0.20105.1 

然而,什么是最好的做法,是否有任何陷阱,以这种方式使用的NuGet?例如我是否应该将所有ASP.Net MVC Web项目切换为使用NuGet的此包,而不是在GAC中部署dll?

回答

8

我们在MVC 4项目中做了类似的事情。

我们使用NuGet安装了MVC,然后在项目上启用了包恢复,将.nuget文件夹提交到存储库。 http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html

Install-Package Microsoft.AspNet.Mvc 
Install-Package NuGetPowerTools 
Enable-PackageRestore 

当项目是建立在构建服务器上,缺少的包是从的NuGet下载,当部署它们会自动包含在bin目录中。

我会说你的方法是正确的,而不是使用bin的部署方法,并提交所需的程序集到版本库。