Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Error -5008 occurs with 32-bit dll as component of install


3 replies to this topic

garyflet

garyflet
  • Full Members
  • 36 posts

Posted 08 August 2016 - 18:22

Greetings, I get Error -5008 when compiling my setup.ism on Installshield Basic MSI professional 2011 when I add a 32 bit dll.  (Error -5008 reads "Intel64 or AMD64 must be specified in the template of the Summary Stream".)  However, I want my install to work on 32-bit systems.    I have dozens of other 32 bit dlls and exes already that present no problem. The dll that causes the problem is unique in that it is managed C++, but it is compiled (on Visual Studio 2010) as a 32-bit dll.  It uses the preprocessor definition "WIN32".  Also in the Component properties for this dll in setup.ism, the "64-bit Component" is set to "No". 

 

How can I make this work?

Thanks very much for any help,

Gary



garyflet

garyflet
  • Full Members
  • 36 posts

Posted 08 August 2016 - 22:05

Curiously, I found that by not making my managed C++ dll a "key" file, setup.ism would compile.  I have no idea why, since being a key file would seem to have nothing to do with being 64 bit, but so far it appears that everything is fine.

 

Thanks for your consideration,

Gary



deramor

deramor
  • Full Members
  • 187 posts

Posted 09 August 2016 - 17:05

Gary, just because WIN32 preprocessor definition was defined in Visual Studio doesn't mean it is a 32-bit component.  For all C/C++ code (managed or unmanaged), the target platform is determined by linker settings.  On the advanced linker settings there is a target machine setting.  This should be MachineX86 if it is a 32-bit component. (if compiled for your run of the mill desktop)

 

By removing the DLL as a key file, Installshield no longer checks it's bitness against the project template setting.

I suspect this dll is actually building as 64-bit.  In a round about way, Installshield is telling you there is a problem with your build settings.



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 16 August 2016 - 16:25

Another possible cause might be dependencies that get added automatically. Switch ".NET scan at build" to "properties only" instead of "Dependencies and Properties"