由于以下错误,检索具有CLSID {xxxx}的组件的COM类工厂失败:80040154

时间:2013-02-13 17:17:33

标签: .net com interop registry regsvr32

我正在将VB6应用程序升级到VB.Net。它使用了“Adobe Acrobat 10.0类型库”。但是,当与.Net项目一起使用时,我在标题中收到错误。 我创建了一个小型测试项目。当我尝试在以下行中实例化AcroPDDoc时抛出异常:

Dim acroApp As Acrobat.AcroPDDoc = New Acrobat.AcroPDDoc()

adobe库位于C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.dll。添加后,它会将名为“Interop.Acrobat.dll”的dll放入项目的obj文件夹中。 我已经尝试在两个dll上运行RegSvr32.exe,正如我在某处看到的那样建议,但是接受了错误

  

dll已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005

我无法在错误代码上找到很多。

我也试过chainging the platform target to x86 from 'any cpu'

编辑 - 我在Windows 7的32位和64位版本上遇到了同样的问题。

在胜利7 64中,我输入了以下内容:

  

C:\的Windows \ Syswow64资料> regsvr32“C:\ Program Files(x86)\ Adob​​e \ Reader 10.0 \ Reader \ AcroRd32.dll”

收到以下错误:

RegSvr32 error - 64 bit win7

在胜利7 32中,输入以下内容:

  

C:\ Windows \ System32下> regsvr32“C:\ Program Files \ Adob​​e \ Reader 10.0 \ Reader \ AcroRd32.dll”

收到以下错误:

RegSvr32 error - 32 bit win7

编辑2 - 按照Raymond Chen的建议,我在Adobe网站上再次通过了。我在here找到了几个帖子herestackoverflow和另一个问题。前两个链接并不是专门针对.NET,但是从它们看来,似乎必须安装完整版本的Acrobat Reader才能使这些互操作类工作/有问题的dll被注册。我明天会检查,但我强烈怀疑客户的环境可能包括完整版的Acrobat Reader。 对所有回答的人,谢谢你的时间。

编辑3 - 完成了Acrobat的完整版本,安装了,看哪,一切都花花公子!

1 个答案:

答案 0 :(得分:0)

如上所述,除非在机器上安装了Acrobat的完整版本,否则dll不允许自己注册。