RegAsm真正做了什么? 文件在哪里被复制?

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

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

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

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

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

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

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

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