如何检查COM dll是否已注册C#?

pro*_*eek 9 c# registry

我需要检查msdia100.dll是否在我正在运行的计算机系统上注册,以便使用该命令注册dll regsvr32.exe.我怎么能用C#做到这一点?

Han*_*son 3

您可以通过注册表搜索这一点。假设您不知道 DLL 中包含的 COM 对象,您必须首先在HKEY_CLASSES_ROOT.

然后使用类名在 中查找 CLSID HKEY_CLASSES_ROOT\[ClassName]\CLSID,最后您应该能够找到 CLSID 作为HKEY_CLASSES_ROOT\CLSID\[CLSID]

请注意,注册表位置是从内存写入的,因此可能会有点偏差。

编辑:或者,如果您知道类名,您可以尝试创建它的一个实例,看看它是否有效。