因此,当您将 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?