dll添加到GAC,在C:\WINDOWS\assembly下可以看到,但在添加引用裡看不到
方案一:在“添加引用”對話方塊中顯示程式集
即使已將程式集安裝到全域組件快取 (GAC) 中,“添加引用”對話方塊也不會自動顯示每個程式集。“添加引用”對話方塊基於路徑並要求添加註冊表項,該項指定要顯示的程式集的位置。
在“添加引用”對話方塊中顯示程式集
添加以下登錄機碼之一,其中 <AssemblyLocation> 是要在“添加引用”對話方塊中顯示的程式集目錄,例如 C:\\MyAssemblies。
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\<version>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\<version>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"
注意
在 HKEY_LOCAL_MACHINE 登錄區下建立登錄機碼以後,所有使用者都可以在“添加引用”對話方塊的指定位置看到程式集。在 HKEY_CURRENT_USER 登錄區下建立登錄機碼只會影響目前使用者的設定。
重新啟動 Visual Studio。
方案二:
可以把你的DLL複製到.NET Framework目錄(%WINDIR%\Microsoft.NET\Framework\v1.x.yyyy)中,這樣的話.可以達到你的目的. 但是,MS建議我們不應該將自己的assembly拷貝到Framework目錄中。一個更好的方法就是把它們放在一個單獨的目錄中,然後給Windows Registry添加一個key,告訴VS.NET在哪裡可以找到這些assembly。除了核心的Framework assembly外,VS.NET也可以顯示在以下這些Registry key中列出的目錄中的任何assembly:HKEY_CURRENT_USER\Software\Microsoft\.NETFramework\AssemblyFolders
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\7.1\AssemblyFolders
HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\7.1\AssemblyFolders
下面是原創哈哈:
對於silverlight的程式集引用是不同的:
相應註冊表為:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Silverlight\[版本號碼]\AssemblyFoldersEx