PDA

View Full Version : 64bit DLL custom actions not working



johnd2
07-15-2005, 11:08 AM
Hello all,

I'm installing a 64bit package (I've set the "Template Summary" to include
AMD64, and I've set the "64-Bit Component" field to "Yes" for a number of files).

I have a number of custom actions defined in a DLL, and I've rebuilt the DLL as a 64 bit library. According to the IS documentation this should just work, the windows installer should be able to access the 64bit DLL.

Seems not to be the case though, when I run the install (on the 64 bit machine) I get the message:

"File c:\tmp\instdll6.dll can not be found. Make sure the file is on the target system or installed already", theres nothing useful in the log file.

If I replace the DLL with a 32bit version it calls it fine.

Any ideas? Thanks,

john.

aryans
01-16-2007, 11:39 PM
John,

I am also facing the same problem. Msi is calling 32 bit dlls. But if I use 64 bit dll then its showing the error message "... dll not found.....". If you have found any solution please let me know.

Thanks,
Aryan

MichaelU
01-17-2007, 12:43 PM
Are you using "MSI" DLLs or "Standard" DLLs? The former are called directly by MSI and should work; the latter are called through a custom 32-bit wrapper DLL and thus cannot handle 64-bit DLLs.

aryans
01-29-2007, 02:15 AM
I am using standard dll. So according to you, MSI cannot handle those. So is there any way so that MSI can call a 64 bit dll?

MichaelU
01-29-2007, 11:19 AM
If you create your DLL as an "MSI DLL" (the exported function takes a single parameter of type MSIHANDLE), then Windows Installer can call your 64-bit DLL fine. It's when you use our "Standard DLL" wrapper (which is itself a 32-bit DLL) that you can't call into a 64-bit DLL.