0

我已经使用 regasm 工具注册了一个 .net COM dll,并且注册成功。它说“类型注册成功”。但是当我打开注册表时,我看不到我的 dll。我使用 ProgId 和 clsId 进行了搜索,但没有。

我也以相同的方式注册了另一个 dll,它已成功注册,我可以从 VB6 dll 访问它。

会是什么问题。dll有问题吗?我以相同的方式为我的两个 dll 设置了项目属性,其中一个似乎已成功注册。

我应该测试从现有 vb6 工具访问的 dll 并且无法启动它。

谢谢

西塔

4

2 回答 2

1

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

如果文件不包含任何条目,则程序集不会导出任何 COM 类型。然后,您需要确保在项目属性中标记Make assembly COM visible选项或使用[ComVisible(true)]相应类型的属性。

如果您使用的是 64 位系统,请确保您使用的是正确版本的 regasm,因为 32 位和 64 位有不同的版本:

  • %SYSTEMROOT%\Microsoft.NET\Framework\<framework version>\regasm.exe
  • %SYSTEMROOT%\Microsoft.NET\Framework64\<framework version>\regasm.exe
于 2013-05-15T12:45:38.717 回答
1

我知道这已经晚了六年,但对于任何有这个问题的人:您还需要确保您尝试注册的类型是公开的。(根据我自己的经验,这很容易被忽视。)

于 2020-04-02T18:30:47.113 回答