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

时间:2012-04-17 08:53:37

标签: c# dll regasm dllregistration ie-plugins

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

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

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

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

1 个答案:

答案 0 :(得分:8)

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

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

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

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