2013-05-15 44 views
0

我已经注册使用regasm工具.NET COM DLL,并注册成功。它说'类型注册成功'。但是当我打开注册表时,我看不到我的dll。我用ProgId & clsId搜索,但没有。无法注册.NET COM DLL

我注册了另一个DLL太相同的方式,它得到了注册成功,我能够从VB6的dll访问它。

可能是什么问题。有什么问题的DLL?我以同样的方式设置了我的dll的项目属性,并且似乎已成功注册。

我应该测试DLL从现有的VB6的工具,无法开始工作访问。

感谢

Nishitha

+0

我把它的DLL被标记为在项目属性COM互操作? – Leon

+0

我已经在项目的属性中勾选了'Make assembly COM visible'选项。我相信我不必检查'注册COM互操作',因为我们正在使用regasm进行同样的操作。 –

+1

Regasm.exe有* 4个*版本,32位与64位以及v2与v4。 75%的可能性你会使用错误的。当它变成SO问题时,100%。 –

回答

1

使用regasm.exe/regfile选项。这将创建一个包含注册程序集时将要创建的所有条目的reg文件。

如果文件不包含任何条目,您的组件不出口任何COM类型。然后您需要确保您标记使项目属性中的程序集COM可见选项或使用相应类型上的[ComVisible(true)]属性。

如果你是一个64位系统上,确保您使用regasm的正确版本有不同版本的32位和64位:

  • %SYSTEMROOT%\Microsoft.NET\Framework\<framework version>\regasm.exe
  • %SYSTEMROOT%\Microsoft.NET\Framework64\<framework version>\regasm.exe
+0

使用/ regfile我可以在reg文件中看到4个条目,它们是一些枚举。我看不到我的COM可见的类入口。另一个dll(它已经被注册并且能够访问)在reg文件中有我的COM可见类的详细信息。我的程序集是COM可见的,并且使用[ComVisibleAttribute(true)]设置我的类 –