2010-06-14 81 views
3

我有.NET解决方案(用C++编写的一个项目,其他项目用C#编写)和它的库。如何检查.NET DLL是否已注册?

我想做一些starttest工具来测试所有C#,C++库是否正确注册。我怎样才能做到这一点?我如何问.NET如果一些C#或C++ COM库被注册? br

回答

2

一种方法是使用所谓的注册DLL来创建一个对象。如果它有效,那么你可以确定其正确注册的所有其他方法可能有点不可靠

+0

注意有各种各样的原因,注册的DLL无法正常工作,我经常遇到的一个是缺少依赖DLL – 2010-06-16 01:37:08

+0

是的,这是最常见的原因。 – 2010-06-16 08:42:09

0

你最好的办法是尝试实例化你的测试需要的每个类。解析引用和确定COM注册有点复杂(即使对于Windows)。例如,你可以在注册表中搜索你的COM对象的编号,但是这不会告诉你所有的依赖关系在那里,并且完整的对象和接口已经被正确注册。

1

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

所有课程在这个蜂巢是registred:

HKEY_LOCAL_MACHINE/Software/Classes 

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

相关问题