Reputation: 91
Development and deployment on 32-bit system were successful, but a production system running Windows Server 64-bit caused several errors:
Exception System.DllNotFoundException Unable to load DLL ‘ABCpdf9-32.dll’. The specified module could not be found (Exception from HRESULT: 0x8007007E)
Upvotes: 9
Views: 17071
Reputation:
So I was getting the same error. I am using win64.
These are the steps I followed to overcome my issue. Hope it helps :-)
Upvotes: 0
Reputation: 434
My Application is 64 bit and some old module is using .32 bit ABCpdf. When I try to print pdf for a new module which uses 64 bit ABCpdf it works and prints. But when code tries to print using old modules which are in 32 bit then it throws following exception. As there is only one ABCpdf.dll to be added. Also, you cannot reference a ABCpdf8-32.dll directly into a 64 bit project.
I was getting error as: unable to load DLL 'ABCpdf8-32.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)"
When I tried to add reference following error occured.
After trying for some time I directly added the dll into bin folder and it worked. The permission is not only issue as all my folders had proper permissions given. So, if anyone is having similar issue can try this.
Upvotes: 1
Reputation: 11
The problem will be solved only when you install the vendor provided software on all developer and server machines.
Upvotes: 1
Reputation: 1494
I solved it giving full access privileges to System account in Bin folder.
Upvotes: 0
Reputation: 1222
ABCpdf is a 3rd party library that supports both 32 and 64 bit architecture. The .dlls are meant to be put in place using an installer provided by the vendor of the software. When you download the installer from the vendor, you select the 32-bit installer or the 64 bit installer, and then you install it, and enter the key and off you go. From your application's perspective, you just reference abcpdf.dll regardless of whether you'll be deploying to 32bit or 64bit, and the dll handles pointing you over to the correct dll.
The answers so far have mislead you. Do not address the problem by altering your application, just install the right version of ABCpdf on the server to which you're deploying.
Upvotes: 4
Reputation: 2906
Unless you really need your app to be 64-bit (I doubt it - even the VS team opted against), I would suggest you just build and deploy as a 32-bit app. There are few good reasons to go 64-bit, and it complicates things like third-party drivers, COM objects, etc. It may not even be possible to round up 64-bit versions of all these.
Upvotes: 0
Reputation: 2395
ABCpdf is a COM dll that has unmanaged code right? In that case it cannot run on a 64bit platform. The article given below explains this (Check the last bits of it)
Additionally, I would also make sure that the ABCpdf dll is not dependent on any other 32bit dlls. You can use Dependency Walker to test this (http://www.dependencywalker.com/)
You will need to find the 64bit versions of the respective COM dlls.
Upvotes: 0