在Visual Studio中,您可以引用已注册的.NET组件。我需要在运行时获取其中一个组件的位置(完整路径)。我可以意识到(在C#中)吗?
我没有在我的项目中引用.NET程序集。我只想获取已注册的.NET程序集的位置,就像它在窗口中列出的那样,当我想添加引用时显示它。
答案 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