这似乎是关于SO的热门话题,但我见过的解决方案都没有为我工作。
我的Web应用程序使用PolarZIP来处理压缩和解压缩最终用户提供/接收的XML文件。在我的项目中没有引用PolarZIP.dll,也没有在类中使用任何使用语句,但在我们的实时服务器上,应用程序行为正常。在本地,一旦它试图实例化这个PolarZIP对象,我就会得到这个例外:
检索具有CLSID {9A00B901-D104-11D4-B8F7-080030001D26}的组件的COM类工厂由于以下错误而失败:80040154未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))。
这是我能找到的最受欢迎的主题:
但是在解决方案中设置我为x86构建的所有项目(而不是“任何CPU”)会让事情变得更糟 - 当我启动应用程序时,我得到了这个新的服务器错误:
无法加载文件或程序集“OurSoftware.Business”或其依赖项之一。试图加载格式不正确的程序。
引用此错误的大多数其他问题要么被标记为我上面链接的那个重复,要么根本没有任何答案
我的C:\Windows\SysWOW64\
文件夹中有PolarZIP.ocx,它位于实时服务器上(软件正常运行)。
有什么想法吗?
编辑;如果重要的话,CLSID 9A00B901-D104-11D4-B8F7-080030001D26
会显示在注册表中。名称:(默认),类型:REG_SZ,数据:PolarZIP控件
答案 0 :(得分:0)
复制文件是不够的 - 您需要注册库。这通常由安装程序处理 - 复制文件通常是一个坏主意。如果您没有使用安装程序的选项,请查看regsvr32.exe。很可能需要处理其他步骤,需要安装的依赖项 - 实际上,使用安装程序是目前最喜欢的选项:)
此外,确保位数正确。 32位应用程序无法访问64位COMponent,反之亦然。
答案 1 :(得分:-1)
您是否使用'Depends.exe'检查了任何依赖库?