2010-05-26 65 views
6

這與Add Non-GAC reference to project類似,但在那裏提供的解決方案似乎沒有幫助。在Visual Studio 2010中引用非GAC版本的DLL

我有一個安裝在GAC中的WinForms UI庫(來自ComponentFactory的氪)。我想在該庫中追蹤一個錯誤,所以我將源代碼添加到了我的解決方案中,將我的WinForms項目中的舊引用移除到Krypton DLL,將它們添加回作爲項目引用,確保Copy Local設置爲true,仔細檢查路徑(在參考屬性選項卡上)指向我的本地項目,並且...

... GAC版本仍在調試時使用。我不能在Krypton源代碼中設置斷點,Debugger.Break()或其他代碼更改爲不執行,並且當我啓動Visual Studio 2010調試器時,我會看到從VS 2010中加載的與...相關的KACON DLL的GAC_MISL消息狀態欄。 DLL不會複製到WinForm的Debug文件夾。

如何在調試時參考文件的「項目」版本,同時讓它們在GAC中註冊?

回答

5

CLR將總是先看看GAC。不要猶豫,使用gacutil.exe/u刪除它們。黑客攻擊[AssemblyVersion]也會起作用,所以GAC副本不會匹配。

+0

gacutil似乎位於幾個地方 - 嘗試搜索'C:\ Program Files(x86)\'。這是我的服務器上的路徑之一:'C:\ Program Files文件(x86)\ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \ x64' – northben 2013-05-14 14:20:59

+0

這是否仍然如此?現在有辦法優先考慮引用的項目而不是GAC嗎?在我看來,在調試環境中存在一個主要缺陷;微軟應該解決這個恕我直言。 – 2016-11-24 15:04:25

+0

的確如此,它仍然如此,它永遠是真的。你必須和微軟通話,但你可以肯定的是,他們會完全忽略你:)在你的開發機器上濫用GAC只是一個不好的主意,它只是一個重要的部署細節。用戶的機器。這是DLL Hell的真正受害者。在開發機器上玩地獄是一個自我造成的問題。 – 2016-11-24 15:23:53

相關問題