与ASP.Net MVC持续集成

bay*_*ezy 10 .net asp.net-mvc continuous-integration nuget

因此,当您将MVC安装到Visual Studio中时,它会将MVC dll放入GAC.因此,它们不需要位于项目的文件系统中以允许项目构建.

当我们将它部署到live和我们的持续集成服务器时,MVC和Razor所需的依赖关系不在版本控制中.微软为何如此复杂的原因超出了我的范围.

我是一个自动化我能做到的一切,所以我想知道最好的方法是解决丢失的dll的问题.

现在,对于ASP.Net MVC项目,我已经使用bin部署解决了这个问题,如http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx所述,Phil Haack的博客.这工作正常但我也有一些库项目引用System.Web.Mvc,它们不能在构建服务器上编译,并且Visual Studio中的bin部署选项不适用于Library Projects.

我认为正确的做法是使用NuGet

Install-Package Microsoft.AspNet.Mvc -Version 3.0.20105.1
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*ver 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 
Run Code Online (Sandbox Code Playgroud)

当项目在构建服务器上构建时,从nuget下载缺少的软件包,在部署时它们会自动包含在bin目录中.

我想说你的方法是正确的,而不是使用bin deploy方法并将所需的程序集提交到存储库.