如何使用C#获取已注册.NET组件的位置?

时间:2011-04-06 23:39:13

标签: c# .net visual-studio visual-studio-2008 .net-3.5

在Visual Studio中,您可以引用已注册的.NET组件。我需要在运行时获取其中一个组件的位置(完整路径)。我可以意识到(在C#中)吗?

我没有在我的项目中引用.NET程序集。我只想获取已注册的.NET程序集的位置,就像它在窗口中列出的那样,当我想添加引用时显示它。

3 个答案:

答案 0 :(得分:4)

你想做什么?

如果要在运行时确定程序集的路径,请尝试以下操作:

Assembly.GetAssembly(typeof(Form)).Location
// Output:
// C:\WINDOWS\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll

您应该将“Form”替换为您要为mscorlib.dll找到的程序集中的类型(例如string)。

答案 1 :(得分:2)

Assembly.GetAssembly([C#_Component].GetType()).Location

答案 2 :(得分:2)

使用您的EXE文件名在HKEY_CLASSES_ROOT \ CLSID下搜索。它应该用作“LocalServer32”的值。

您只需要阅读注册表。

参考:Stack Overflow问题 How to get an ActiveX component's registered path