VS2008更喜欢GAC引用解决方案文件夹中的程序集

时间:2009-06-16 11:04:31

标签: visual-studio-2008 assemblies reference gac

我在我的解决方案中使用了一些第三方库,并将它们保存在一个名为3rdParty的独立源控制文件夹中。我已经从VS2008 IDE添加了对此文件夹中的DLL的引用。但是,我发现在保存,关闭和打开解决方案后,引用已更改为指向GAC中的程序集。

使用3rdParty文件夹的原因是我可以轻松地从任何计算机获取最新版本并构建我的项目,而无需在GAC文件夹中安装任何内容。如何让VS2008保持我的参考不受影响?

编辑:在看到Benjol的回答之后,我一直想知道是否可以使用程序集清单来解决这个问题。这有助于解决我的问题吗?

4 个答案:

答案 0 :(得分:0)

对于引用有一个“CopyLocal”设置,如果将其设置为true并将SpecificVersion设置为false,则应使用本地引用而不是GAC。

GAC dlls在本地之前引用,因为它们被设计为共享,但只有在指定了特定版本时才应选择。

如果它们继续导致问题,您是否可以从GAC中删除这些程序集?

答案 1 :(得分:0)

即使你可以让VS查看你的本地文件夹,这在运行时也没有帮助(我的意思是F5 /调试运行时),因为.Net无论如何都会首先查看GAC。

参考CopyLocal,AFAIK,它只是告诉编译器将你引用的DLL版本复制到你项目的/ bin文件夹中,所以不应该有“复杂”路径的任何问题。

答案 2 :(得分:0)

为了获取本地程序集,您必须进入项目属性,在“参考路径”选项卡下,将本地目录(在您的情况下为第三方)添加到目录列表中。这应该可以解决您的问题。

答案 3 :(得分:-1)

我们在这里使用类似的方法,虽然我们调用文件夹ReferencedDLLs,到目前为止我们没有遇到任何问题。

但是,您可以尝试编辑项目文件以删除相关引用的PathHint,这样VS2008就不知道在哪里查看,它将启动正常方法。