2011-02-17 237 views
6

我已經安裝了強命名組件TestReflection到GAC(我使用.NET 4.0和VS 2010)。如何從GAC中引用程序集?

不同版本的DLL TestReflection的是在.NET 4.0(C:\WINDOWS\Microsoft.NET\assembly\GAC_32\TestReflection\)GAC,但是,大會沒有出現在「項目」 - >「添加引用」 VS 2010的箱

哪有我是指在另一個項目中,在設計時將我的程序集部署在GAC中?

This頁說:

不能從全局程序集緩存(GAC)添加引用,因爲它是嚴格的運行時環境的一部分。

參考此聲明,我想知道如何使您的項目的DLL共享程序集爲其他消費者,如果它的要求?

+0

所述參考路徑在屬性窗口讓您選擇參考組件路徑。 。選擇GAC路徑 – 2015-11-19 14:55:40

回答

8

的dll中的「添加引用」對話框的.NET選項卡顯示的差別並不居然在GAC註冊的人。它們是通過在文件系統上搜索幾條路徑找到的。

被搜查通過查找以下注冊表項位於由Visual Studio中的路徑:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetFramework\{Version}\AssemblyFoldersEx\ 

應該有一些按鍵補充說了,所以如果你想你自己的DLL展現出來的。網絡標籤,您可以將其添加到其中定義的文件夾之一。你也可以一個新的註冊表鍵指向添加到自定義文件夾,將只包含自己的DLL。

GAC僅適用於部署應用程序後在運行時加載程序集,因此我認爲您不應在開發時使用它。在部署應用程序時,請確保將「複製本地」設置爲false,以免dll被複制到bin文件夾中,然後將其安裝到GAC中,並將其從那裏加載。

0

如果你想全局程序集緩存引用添加到您的VS2010的項目,有一個擴展,你可以使用:Muse.VSExtensions

它有一些怪癖,但做得不錯。檢查出來...

4

另一個簡單的選擇是在Visual Studio中手工編輯項目文件爲XML(您將不得不先卸載項目),並在MSBuild項目文件中添加節點<Reference Include="<name of dll>" />。重新加載項目後,VS將會毫無問題地提取參考。

0

答案是引用路徑在屬性窗口,你必須與GAC路徑 設置請參考我的文章here

相關問題