C# 如何检查.NET DLL是否已注册?

C# 如何检查.NET DLL是否已注册?,c#,c++,.net,dll,dllregistration,C#,C++,.net,Dll,Dllregistration,我有.NET解决方案(一个项目用C++编写,其他用C语言编写),并有库。 我想做一个测试工具,它将测试所有的C++、C++库是否正确注册。我该怎么做?如果C C或C++ COM库被重述,我怎么问.NET?br一种方法是使用假定已注册的DLL创建对象。如果它能工作,那么您可以确保它已正确注册所有其他方法可能有点不可靠您最好尝试实例化测试所需的每个类。解析引用和确定COM注册有些复杂(即使对于Windows) 例如,您可以在注册表中搜索COM对象的prog id,但这不会告诉您所有依赖项都存在,并且

我有.NET解决方案(一个项目用C++编写,其他用C语言编写),并有库。
<>我想做一个测试工具,它将测试所有的C++、C++库是否正确注册。我该怎么做?如果C C或C++ COM库被重述,我怎么问.NET?br

一种方法是使用假定已注册的DLL创建对象。如果它能工作,那么您可以确保它已正确注册所有其他方法可能有点不可靠

您最好尝试实例化测试所需的每个类。解析引用和确定COM注册有些复杂(即使对于Windows)


例如,您可以在注册表中搜索COM对象的prog id,但这不会告诉您所有依赖项都存在,并且完整的对象和接口都已正确注册。

如果有COM组件的classid条目,您可以扫描/搜索注册表。或者注册时设置的其他密钥

所有类都已在此配置单元中注册:

HKEY_LOCAL_MACHINE/Software/Classes

另一种方法是尝试实例化COM对象,并检查它是否成功。

注意,注册的DLL无法工作有多种原因,我经常遇到的一个原因是缺少依赖项DLLsYes,这是最常见的原因。