我有一个VB.Net项目,它需要使用第三方动态链接库,也有一个互操作程序集。所以我有这样的东西:
Hummingbird.DM.Server.Interop.PCDClient.dll
PCDClient.dll我尝试直接在项目中添加对interop的引用,但在运行该文件时出现COM未注册错误。
因此,我尝试注册互操作,如下所示:
gacutil /if "C:\....\Hummingbird.DM.Server.Interop.PCDClient.dll"
regasm "C:\....\Hummingbird.DM.Server.Interop.PCDClient.dll"即使在重新启动VS之后,程序集仍然不可见。
发布于 2011-01-15 01:06:18
您的regasm命令已销毁COM服务器的注册表项。你必须重新安装它。只在你自己的ComVisible代码上使用regasm。
除了没有正确安装该组件之外,使用该组件可能会遇到问题的一个原因是,您正在尝试在64位操作系统上运行该组件。组件是32位的,这是迄今为止最常见的情况。你需要强制你的应用程序在32位模式下运行才能使用它。在CPU中,通过项目+属性,编译选项卡,向下滚动,高级编译选项,将目标VB.NET设置为"x86“。
解决此类问题的终极故障排除工具是SysInternals的ProcMon实用程序。它显示了COM是如何使用HKLM\Software\Classes\CLSID键来搜索要加载的DLL的。
发布于 2011-01-15 00:52:17
您正在注册互操作,但(如错误消息所示)尚未注册COM DLL。试试这个:
regsvr32 pdcclient.dllhttps://stackoverflow.com/questions/4693250
复制相似问题