10

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

当我们将它部署到 live 和我们的持续集成服务器时,MVC 和 Razor 所需的依赖项不在版本控制中。微软把这件事弄得如此复杂的原因我无法理解。

我是自动化所有事情的人,所以我想知道解决丢失 dll 问题的最佳方法是什么。

现在对于 ASP.Net MVC 项目,我已经使用 bin 部署解决了这个问题,如Phil Haack 的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?

4

1 回答 1

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 deploy 方法并将所需的程序集提交到存储库。

于 2012-09-12T11:35:15.253 回答