2009-06-16 68 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

爲了讓它拿起你的本地程序集,你必須進入項目屬性,在參考路徑選項卡下,並將本地目錄(在你的案例中是第三方)添加到目錄列表中。這應該解決您的問題。

相關問題