在不参考GAC的情况下开发

时间:2012-09-11 09:53:27

标签: .net asp.net-mvc visual-studio gac

是否可以在Visual Studio 中开发而不用引用GAC中的程序集(核心.Net框架除外)?我想我在问是否可以在应用程序中使用纯粹的本地程序集。

除了.Net框架之外,我们的buildserver / live / test环境没有安装,所有引用的程序集(如MVC / Entity Framework等)都包含在NuGet包归档中。开发机器需要安装MVC才能使Visual Studio正常工作。这样做的问题是,由于开发机器通常会在GAC中找到所需的内容,因此无法确定某些内容是否会导致解决特定依赖项的问题,直到将其推送到构建服务器。我还有一个场景,在我的开发机器上的GAC中找到了一个较旧的,不正确的程序集版本,即使后面的正确版本被项目引用作为程序包的一部分(构建服务器使用)。

2 个答案:

答案 0 :(得分:1)

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

这基本上意味着从项目中删除所有引用,并将它们再次手动添加回特定位置。

然后,您可以在Source控件中跟踪这些dll。这样,所有这些都将被推送到Build服务器。

答案 1 :(得分:0)

解决方案是2个步骤;

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

    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(和网页)

  3. 按照此处的步骤执行此操作

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

    基本上现在任何无法通过项目文件中指定的位置解析的程序集(即,如果NuGet程序包的名称不正确)将导致构建失败,就像构建服务器一样。 MVC模板仍然可以在Visual Studio中使用