2009-06-16 67 views
0

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

使用3rdParty文件夹的原因是,我可以轻松地从任何机器获取最新版本并构建我的项目,而无需在GAC文件夹中安装任何内容。我怎样才能让VS2008保持我的引用不变?

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

+0

你确定,这个改变是VS的女仆吗?我们正在使用相同的场景,我们没有问题。唯一的情况是,何时将引用更改为GAC程序集时,第三方组件需要额外的程序集。 – TcKs 2009-06-16 11:09:23

+0

是的。我证实了这一改变是由VS在保存时完成的。 – 2009-07-23 12:56:57

回答

0

即使您可以让VS查看您的本地文件夹,在运行时(我的意思是F5 /调试运行时)也无济于事,因为.Net会首先查看GAC。

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

-1

虽然我们称之为文件夹ReferencedDLLs,但我们在这里使用类似的方法工作,但迄今为止我们没有任何问题。

但是,您可以尝试的一件事是编辑项目文件以删除有关引用的PathHint,这样VS2008不知道去哪里寻找,它将启动常规方法。

+0

Paulo,如何删除PathHint?我无法在UI中找到它。 – 2009-06-18 06:41:55

+0

我不在用户界面上。您需要卸载项目并手动编辑项目文件。 – 2009-06-18 09:47:10

0

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

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

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

0

为了让它拿起你的本地程序集,你必须进入项目属性,在参考路径选项卡下,并将本地目录(在你的案例中是第三方)添加到目录列表中。这应该解决您的问题。

相关问题