8

我们有一个基于 spicIE 的 IE 插件,目的是连接一些外部设备。

为了连接到这些外部设备,另一家公司开发了他们的令牌和 DLL。我们需要一些 ActiveX 和 DLL 来通过令牌进行身份验证。

问题是我们为 IE 开发的插件,最后有一个 install.bat 文件,它运行 RegAsm 并注册 DLL,然后在 IE 中可以查看该插件(或其更改)。

从 IE 运行插件时,我们的代码找不到一些 DLL,需要进行身份验证(将其命名为 x.dll)。注册的DLL复制到哪里?真的是抄的吗?我需要在我的插件的 DLL 所在的文件夹中有 x.dll。

4

1 回答 1

8

简而言之,RegAsm 将您的 .NET 程序集注册为 COM 可查看的。来自 MSDN:一旦注册了一个类,任何 COM 客户端都可以使用它,就好像该类是一个 COM 类一样。该类仅在安装程序集时注册一次。在实际注册之前,不能从 COM 创建程序集中的类实例。

如果我没有在 ActiveX 中看到您的代码,如果我理解正确,您的 ActiveX 依赖于一些 COM DLL,这就是您针对 .NET DLL 运行 RegAsm 的原因。

运行RegDllView以查找已注册内容的详细信息,然后检查您是否确实实例化了实际上已注册的对象。

此外,如果您仍然有问题,请尝试在 VB6/Visual Studio 2010 等中实例化对象或在早期绑定中的等效项,看看您是否有任何问题。检查实例化错误。

于 2012-04-17T09:02:33.267 回答