无法加载DLL'ABCpdf9-32.dll'。找不到指定的模块(HRESULT异常:0x8007007E)

时间:2013-05-16 12:41:45

标签: c#

32位系统上的开发和部署成功,但运行Windows Server 64位的生产系统导致了多个错误:

  

Exception System.DllNotFoundException无法加载DLL   “ABCpdf9-32.dll”。找不到指定的模块(例外   来自HRESULT:0x8007007E)

7 个答案:

答案 0 :(得分:4)

ABCpdf是第三方库,支持32位和64位架构。 .dll旨在使用软件供应商提供的安装程序安装到位。从供应商下载安装程序时,选择32位安装程序或64位安装程序,然后安装它,然后输入密钥,然后关闭。从您的应用程序的角度来看,无论您是要部署到32位还是64位,都只需引用abcpdf.dll,并且dll会将您指向正确的dll。

到目前为止,答案误导了你。不要通过更改应用程序来解决问题,只需在要部署的服务器上安装正确版本的ABCpdf。

答案 1 :(得分:1)

只有在所有开发人员和服务器计算机上安装供应商提供的软件时,问题才会得到解决。

答案 2 :(得分:1)

我的应用程序是64位,一些旧模块使用.32位ABCpdf。当我尝试为使用64位ABCpdf的新模块打印pdf时,它可以工作和打印。但是当代码尝试使用32位的旧模块进行打印时,它会抛出异常。因为只添加了一个ABCpdf.dll。此外,您不能直接将ABCpdf8-32.dll引用到64位项目中。

我收到的错误是: 无法加载DLL' ABCpdf8-32.dll':找不到指定的模块。 (HRESULT异常:0x8007007E)"

当我尝试添加引用后发生错误。

enter image description here

经过一段时间的尝试后,我直接将dll添加到bin文件夹中并且工作正常。权限不仅是问题,因为我的所有文件夹都有适当的权限。所以,如果有人有类似的问题可以试试这个。

答案 3 :(得分:0)

ABCpdf是一个具有非托管代码的COM dll吗?在这种情况下,它无法在64位平台上运行。下面给出的文章解释了这一点(检查它的最后几位)

http://www.hanselman.com/blog/BackToBasics32bitAnd64bitConfusionAroundX86AndX64AndTheNETFrameworkAndCLR.aspx

此外,我还要确保ABCpdf dll不依赖于任何其他32位dll。您可以使用Dependency Walker对此进行测试(http://www.dependencywalker.com/

您需要找到相应COM dll的64位版本。

答案 4 :(得分:0)

除非你真的需要你的应用程序是64位(我怀疑它 - 即使VS团队选择反对),我建议你只需构建和部署为32位应用程序。 64位是没有什么好理由的,它使第三方驱动程序,COM对象等等变得复杂。甚至可能无法对所有这些的64位版本进行舍入。

答案 5 :(得分:0)

我解决了它,为Bin文件夹中的系统帐户提供了完全访问权限。

答案 6 :(得分:0)

所以我遇到了同样的错误。我正在使用win64。

  1. APCpdf.NEET64.exe运行此程序(如果您的系统中没有它)
  2. 转到VS(任何版本)上,右键单击您的解决方案并添加引用
  3. 单击“ COM”选项卡,然后找到APCpdf.NET PDF生成库
  4. 单击“添加”,清理您的解决方案,然后重新构建。

这些是我克服问题所遵循的步骤。希望对您有所帮助:-)