2013-02-13 113 views
3

我正在将VB6应用程序升级到VB.Net。它使用了“Adobe Acrobat 10.0类型库”。但是,在与.Net项目一起使用时,我会在标题中看到错误。 我创建了一个小测试项目。当我尝试实例化一个AcroPDDoc抛出异常,以下行:由于以下错误,检索具有CLSID {xxxx}的组件的COM类工厂失败:80040154

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

土坯库驻留在C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.dll。当添加时,它会将一个名为“Interop.Acrobat.dll”的dll放入项目的obj文件夹中。 我已经试过两个DLL文件运行regsvr32.exe的,因为我看到的地方建议,但一路上我一直没能找到该错误代码很大的的

dll was loaded but the call to DllRegisterServer failed with error code 0x80004005

行收到一个错误。我也尝试过chainging the platform target to x86 from 'any cpu'

编辑 - 我已经经历了在Windows 7

在Win 7 64的32个和64位版本同样的问题,我进入了以下内容:

C:\Windows\SysWOW64> regsvr32 "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.dll"

收到以下错误:

RegSvr32 error - 64 bit win7

在Win 7 32,输入以下内容:

C:\Windows\system32> regsvr32 "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.dll"

收到以下错误:

RegSvr32 error - 32 bit win7

EDIT 2 - 按Raymond Chen的建议下,我又在传Adobe网站。我发现了几条线程here,here,以及stackoverflow上的另一个问题。前两个链接并没有专门提到.NET,但是从它们来看,似乎必须安装完整版本的Acrobat Reader才能使这些互操作类工作/为有问题的dll进行注册。我会在明天进行检查,但我强烈怀疑客户的环境可能包含完整版本的Acrobat Reader。对所有回答的人,感谢您的时间。

编辑3 - 我的手在完整版本的Acrobat上,安装好了,看着,一切都很漂亮!

+1

您是否尝试过使用管理权限运行程序或关闭UAC? – CodingGorilla 2013-02-13 17:25:06

+1

作为CodingGorilla,请在命令行上使用管理员权限。此外,如果您正在运行64位PC导航到'\ windows \ syswow64' – Ulises 2013-02-13 17:27:45

+0

@CodingGorilla - 是的,我是机器上的管理员。我已经将程序和regsvr32作为管理员运行,没有喜悦。 – dbr 2013-02-13 17:30:09

回答

0

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

相关问题