HOWTO: 在“添加引用”对话框中显示需要的Assembly

周日也没“休息”,昨晚和老同学夜打魔兽,睡到将近中午。下午参考了两篇文章整理了关于GAC和在“添加引用”对话框中显示需要的Assembly所要做的工作。其实就是在部署自己的EntLib时遇到的问题。
 
This issue is not resolved if you install your assembly to the Global Assembly Cache (GAC), because the Add Reference dialog box is path-based and does not enumerate the components from the GAC.
“添加引用”对话框是基于路径工作的,而这个路径实在注册表中的几个地方指定的。这个对话框不会列举GAC中的组件。
方法1.在注册表中添加相关的键。
相关的注册表键:
1)        HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders
2)        HKEY_CURRENT_USER\SOFTWARE\Microsoft\.VisualStudio\7.1\AssemblyFolders
 
3)        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders
4)        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.VisualStudio\7.1\AssemblyFolders
 
使用方法1)、2)、3)、4)相似,以1)为例。
在1)处添加新的注册表键,键名随便起(当然便于识别管理为好),键值就是Assembly所在的物理路径;
我注意到有的组件安装后,会自动在1)、2)两个地方都添加对应的键(如Current Managed DirectX 9.3、DevExpress.NET),而有的只添在其中之一。Reference 1所指示的是只使用1),而Reference 2中似乎也不确定。因为不影响大致的结果,所以暂时没有去查二者的区别在哪里,希望知道的同志给予指点。
3)、4)和1)、2)的却别只是在于HKEY_LOCAL_MACHINE 和HKEY_CURRENT_USER,前者将改变系统上的所有用户的设置,而后者仅影响当前用户的设置。
 
方法2.将要引用的Assembly拷贝到
C:\WINNT\Microsoft.NET\Framework\v1.1.4322\           
(.NET Framework 被安装的位置)
 
方法3.将要引用的Assembly拷贝到
C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\PublicAssemblies
(VS.NET 2003 被安装的位置)
此方法实际是使用安装VS.NET后自动提供的键Public Assemblies:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.VisualStudio\7.1\AssemblyFolders\PublicAssemblies
 
Reference:
1.How to see your GAC-assemblies in the "add reference" dialog  
December 16, 2003
2.How to display an assembly in the Add Reference dialog box   
July 16, 2004
posted @ 2005-06-19 22:10  sinlight23  阅读(1558)  评论(0编辑  收藏  举报