我正在将一个VB6应用程序升级到VB.Net。它使用了“Adobe Acrobat 10.0 Type Library”。然而,在与我的.Net项目一起使用时,我遇到了标题中的错误。我创建了一个小测试项目。当我尝试实例化AcroPDDoc时,即在以下行上抛出异常:
Adobe库位于
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
我没有找到关于该错误代码的大量信息。
我还尝试过将平台目标从“任何CPU”更改为x86。
编辑 - 我在Windows 7的32位和64位版本上都遇到了同样的问题。
在Win 7 64中,我输入了以下内容:
收到以下错误: 在Win 7 32位系统中,输入以下内容:C:\Windows\SysWOW64>regsvr32"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.dll"
收到以下错误信息:C:\Windows\system32> regsvr32 "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.dll"
编辑2 - 根据Raymond Chen的建议,我再次查看了Adobe网站。我在这里,这里找到了几个帖子,以及stackoverflow上的另一个问题。前两个链接没有特别提到.NET,但从它们中可以看出,必须安装完整版本的Acrobat Reader才能使这些互操作类起作用/注册相关DLL文件。明天我会检查一下,但我有强烈的怀疑,客户的环境可能包括完整版本的Acrobat Reader。 感谢所有回答过我的人。
编辑3 - 获得了完整版本的Acrobat,安装后,一切都很好!
\windows\syswow64
目录。 - Ulises