cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
ZygoCorp
Level 6

64-bit InstallScript project problems - please help

I have a straight InstallScript project - it's been working great.

I now need to be able to install a 32-bit OR a 64-bit version of our program, based on the platform - from one setup.exe. I created separate components for each piece of the software that were different for each of the platforms. [This is what the InstallScript instructor had said to do during my class.]

For example, we compile our dlls 2x, one target for x86 and one target for x64. I have a component 'FOO', that includes the x86 dlls, and a component '64FOO' that includes the x64 dlls. I also have noted component FOO to only target 32 bit platforms [the Platform Suite(s) setting] and component 64FOO to only target AMD64 and Intel64 platforms. The rest of my components are the same regardless of the platform, so they are set to Suite Independent.

During installation, the script events correctly identify the OS as well as the platform. SYSINFO.bIsWow64 ==1 for 64 nbit systems and ==0 for 32 bit systems. 🙂 . The correct build of our dlls is installed. 🙂 .

HOWEVER - they are always installed to "Program Files (x86)." I believe I need to call Disable(WOW64FSREDIRECTION); and I've added this call to OnFirstUIBefore, OnMaintUIBefore, and OnUpdateUIBefore at the top of these event handlers. 😞

I'm obviously doing something wrong or not doing something I should. Can anyone help please?
The clock is ticking and I need this working.....I need to get this aspect of the installation working befor moving on to being able to install on either XP, Vista, or Windows 7 (currently we only install to XP). The Acresso documentation really only discusses MSI and installscript msi 64-bit topics......
Labels (1)
0 Kudos
(4) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Have you set the target for these components (or their parents, etc.) to PROGRAMFILES64? The PROGRAMFILES variable always refers to the 32-bit location on a 64-bit machine.
0 Kudos
Japster24
Level 6

This is similar to another question I've been wondering. 🙂

I have an InstallScript MSI project.

For a 64bit install, can you programatically choose the [Programfiles64Folder] and place my [INSTALLDIR] under it instead of the [ProgramFilesFolder] for 32bit installs?

By default, I have all my files in the [INSTALLDIR] under [ProgramFilesFolder] in "Installation Designer -> Application Data -> Files and Folders". So can this be changed in the installscript for 64bit installs?
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Yes and no - while you can certainly programmatically change the target of your INSTALLDIR, MSI packages cannot both support 32-bit and install to 64-bit only folders. This is a limitation of Windows Installer.
0 Kudos
ZygoCorp
Level 6

We set all of our directory paths based on targetdir, which is initialized to \\ in the General Information IDE.

What we had to do was change to . so ultimately on BOTH a 32 bit system and a 64 bit system it ends up evaluating to Program Files.

Acresso support suggested that we also explicitly seed TARGETDIR based on the OS and explicitly Disable (WOW64FSREDIRECTION) before file transfer as added precautions.:)
0 Kudos