如何检查DLL文件是否已注册?

30 .net c#

如何查找以C#编写的DLL文件是否以编程方式注册?

我已经尝试过这段代码,但它并没有结束.

如果我注册DLL文件并使用此代码检查它返回.如果我取消注册并运行同一段代码,它将再次返回true.我将DLL文件的完整路径作为参数.

我们在Visual C++中开发了一个简单的DLL文件.之后我们注册了它.现在我们要确认它已注册.

鲍勃,你会自己更换这段代码吗,对我来说还是很难吗?

如果我注册了DLL文件,注册表中是否有条目?我应该找到这些条目并判断DLL文件是否已注册?

最后一个答案是进行一些修改.我查看了typelib而不是clsid.

earwicker der:无论如何,我做了一点修改.它现在正在运作.

Dan*_*ker 20

您需要找出DLL中定义的COM对象的GUID.然后看看这个注册表项:

HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\InprocServer32
Run Code Online (Sandbox Code Playgroud)

用GUID替换x.

它应该具有包含DLL的完整路径的默认值.

  • 别忘了检查HKEY_CLASSES_ROOT\Wow6432Node\CLSID \ (5认同)
  • 如何获得GUID? (3认同)

aba*_*hev 5

如果您的意思是在GAC注册,请注意以下事项:要在GAC注册,必须使用强名称签署一个程序集(在其名称中有一个公钥令牌).

所以你可以尝试加载它Assembly.Load(string),如果你有FileNotFoundException- 装配没有在GAC注册.

如果没有错误,但结果Assembly.GetName().GetPublicKeyToken()为null或为空 - 这意味着您在应用程序目录中找到了程序集,而不是在GAC中.