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

本文关键字:组件 位置 net 注册 何使用 获取 | 更新日期: 2023-09-27 17:49:21

在Visual Studio中可以引用已注册的。net组件。我需要在运行时获得这些组件之一的位置(完整路径)。我能(在c#中)实现吗?

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

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

你想做什么?

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

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)。

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

在HKEY_CLASSES_ROOT'CLSID下搜索您的EXE文件名称。它应该被用作"LocalServer32"的值。

你只需要读一下注册表就可以了。

参考:Stack Overflow问题如何获得ActiveX组件的注册路径