1

是否可以在不引用 GAC 中的程序集(核心 .Net 框架除外)的情况下在 Visual Studio 中进行开发?我想我在问是否可以将纯本地程序集用于应用程序。

我们的 buildserver/live/test 环境除了 .Net 框架外没有安装任何东西,所有引用的程序集(如 MVC/Entity Framework 等)都包含在 NuGet 包档案中。开发机器需要安装 MVC 才能使 Visual Studio 正常工作。这样做的问题是,在将其推送到构建服务器之前,无法判断某些东西是否会导致解决特定依赖关系的问题,因为开发机器通常会在 GAC 中找到它需要的东西。我也遇到过这样的情况,即在我的开发机器上的 GAC 中发现了一个旧的、不正确的程序集版本,即使项目引用了后来的正确版本作为包的一部分(构建服务器使用)。

4

2 回答 2

1

好吧,您可以随时添加一个文件夹“Libs”以及其他文件夹,并将您的所有 Dll 存储在其中。并确保引用指向该文件夹和 dll,而不是 GAC。

这基本上意味着从项目中删除所有引用,然后手动将它们重新添加到特定位置。

然后,您可以做的是在源代码管理中跟踪这些 dll。这样,所有这些都将被推送到构建服务器。

于 2012-09-11T09:58:27.647 回答
0

解决方案是 2 个步骤;

  1. 删除(或重命名为不存在的内容)AssembleyFoldersEx 注册表项下的路径。所以在我的 Win7 64 位机器上它是以下内容

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v4.0.30319\AssemblyFoldersEx\ASP.NET MVC4(和网页)

  2. 从 GAC 中删除程序集。在我的场景中,这是 system.web.mvc 和相关的程序集,基本上是安装在

    C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4(和网页)

请按照此处的步骤执行此操作

http://dylanbeattie.blogspot.co.uk/2008/11/working-on-aspnet-mvc-beta-and-preview.html

基本上现在任何无法通过项目文件中指定的位置解析的程序集(即,如果 NuGet 包的名称不正确)将导致构建失败,其方式与构建服务器相同。MVC 模板在 Visual Studio 中仍然有效

于 2012-09-13T09:33:01.457 回答