cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
MWieder
Level 3

64 bit vs 32 bit Installation Support?

We have an applicaiton that needs to be able to be installed either on a 32 bit or a 64 bit platform. We want to use a single Installshield source for this, but have no issue creating two seperate outputs if that's what is needed.

Is there a tutorial to help us through the process or would someone be kind enough to outline the steps so we can take our current 32-bit only Installshield file and have it produce 1 or 2 outputs that work on both 32 bit and 64 bit systems?

Specifically, I am concerned with Registry keys as we write configuration values to HLMK/SOFTWARE and the 64 bit registry looks different from the 32 bit one.

Thanks in advance for your time.
Labels (1)
0 Kudos
(53) Replies
harid38
Level 5

loralynne wrote:
I have both 32-bit components and 64-bit components in my project. My 64-bit release includes both the 32-bit components and the 64-bit components. I have a CA that sets the INSTALLDIR to ProgramFiles64Folder, and it has the condition VersionNT64. I build my 32-bit release, and it runs as expected on a 32-bit machine. When I run it on a 64-bit machine, it executes the CA that sets INSTALLDIR to ProgramFiles64Folder since the condition VersionNT64 is met. However, I don't want this CA to be executed when I run my 32-bit installer on a 64-bit machine. I only want it to be executed when I run my 64-bit installer.



Hi, i'm having the same problem. i created a CA to set INSTALLDIR TO ProgFiles64Folder on 64 bit machines but it still pointing to progfiles folder.

I created my CA with an installscript,

MsiSetProperty(hwnd, INSTALLDIR, ProgFiles64Folder);

Am i missing some thing??

Please explain how you created the CA.

Thanks in advance...
0 Kudos
Christoph
Level 8

harid38 wrote:
Hi, i'm having the same problem. i created a CA to set INSTALLDIR TO ProgFiles64Folder on 64 bit machines but it still pointing to progfiles folder.

I created my CA with an installscript,

MsiSetProperty(hwnd, INSTALLDIR, ProgFiles64Folder);

Am i missing some thing??

Please explain how you created the CA.

Thanks in advance...


Define for the releases(Win32 and X64) you have defined, Release flags(eg. RELEASE_WIN32 and RELEASE_X64) and use as a condition on your CA like 'ISReleaseFlags><"RELEASE_WIN32" '
0 Kudos
harid38
Level 5

loralynne wrote:
What I did that works for me was add a Set Directory custom action with the following settings:

Directory Name: INSTALLDIR
Directory Value: [ProgramFiles64Folder]\MyCompany\MyProduct
Execution Scheduling: Execute only once
Install Exec Sequence: After CostFinalize
Install Exec Condition: Not Installed And VersionNT64 And ISReleaseFlags="64bit"

My 64-bit Product Configuration has a release flag called 64bit; hence, the ISReleaseFlags="64bit" in my Install Exec Condition.

With this custom action, my 64-bit installer installs to Program Files for both a UI install and a silent install.


Thanq loralynne, it helped me alot and saved my time. thanq again
0 Kudos
BenMAC
Level 4

Do any newer versions of IS have all this worked out? Seems like it should not be so much trouble to get 32 and 64 bit apps going to the right folders. Pretty common these days.
0 Kudos
samchan80
Level 2

I'm trying to do exactly what has been discussed in this forum (being able to set INSTALLDIR TO ProgFiles64Folder on 64 bit machines instead of ProgramFiles(x86) folder). However, I am using the InstallShield "LE" version that ships for free with Visual Studio 2010.

Is it possible to create a Set Directory custom action using this version? If yes, how? (I know that I cannot define release flags as that feature is disabled)

Thanks!
0 Kudos
tnand53
Level 5

Install on c:\programfiles\ on 64 bit.
I tried the below and failed.

Directory Name: INSTALLDIR
Directory Value: [ProgramFiles64Folder]\MyCompany\MyProduct
Execution Scheduling: Execute only once
Install Exec Sequence: After CostFinalize
Install Exec Condition: Not Installed And VersionNT64 And ISReleaseFlags="64bit"
My 64-bit Product Configuration has a release flag called 64bit; hence, the ISReleaseFlags="64bit" in my Install Exec Condition.

If I have a feature that needs to go in c:\progfiles in not 32 and 6 bit..what should i do.

Can release flag only be applied for features? Can we do it on component.

Can u explain in detail the step how you achieved the above..where u set the release flags and any other proprty u set..it will be great help.
0 Kudos
harid38
Level 5

tnand53 wrote:
Install on c:\programfiles\ on 64 bit.
I tried the below and failed.

Directory Name: INSTALLDIR
Directory Value: [ProgramFiles64Folder]\MyCompany\MyProduct
Execution Scheduling: Execute only once
Install Exec Sequence: After CostFinalize
Install Exec Condition: Not Installed And VersionNT64 And ISReleaseFlags="64bit"
My 64-bit Product Configuration has a release flag called 64bit; hence, the ISReleaseFlags="64bit" in my Install Exec Condition.

If I have a feature that needs to go in c:\progfiles in not 32 and 6 bit..what should i do.

Can release flag only be applied for features? Can we do it on component.

Can u explain in detail the step how you achieved the above..where u set the release flags and any other proprty u set..it will be great help.


Mark the component as 64bit, if you want to place some files in 64bit prog files folder you must mark atleast one component as 64 bit.
0 Kudos
tnand53
Level 5

I have 2 features A and B. The A feature needs to go to c:\program files and B needs ro go to C:\program files (x86) on a 64 bit OS. Is it possible..

Can you tell me any way to do it...When i mark a componet 64 bit and build. it gives AMD64 template error ....
0 Kudos
harid38
Level 5

tnand53 wrote:
I have 2 features A and B. The A feature needs to go to c:\program files and B needs ro go to C:\program files (x86) on a 64 bit OS. Is it possible..

Can you tell me any way to do it...When i mark a componet 64 bit and build. it gives AMD64 template error ....


Bcoz, when ever you mark any component as a 64 bit, you must change the template summary to intel64. when you mark a component as 64bit, the the installer will become a 64bit installer. In the Installation designer -> application data-> files and folders view you can configure the components under the feature A or B to the correct locations.
0 Kudos
tnand53
Level 5

I think u didnt get my question...

i have a single 32 bit MSI. it has 2 feature A and B. A should go to c:\progfiles and b should go to c:\prog files (x86)\...on a 64 bit OS
is it possible?

if yes, can u tell me in detail
0 Kudos
loralynne
Level 6

See if this works:

1. Create a Set Directory custom action with the following settings:

Directory Name: INSTALLDIR64
Directory Value: [ProgramFiles64Folder]\MyCompany\MyProduct
Execution Scheduling: Execute only once
Install Exec Sequence: After CostFinalize
Install Exec Condition: Not Installed And VersionNT64

2. Set the Destination for Feature A to [INSTALLDIR64] so that it gets installed to C:\Program Files\

3. Set the Destination for Feature B to [INSTALLDIR] so that it gets installed to C:\Program Files (x86)\
0 Kudos
tnand53
Level 5

It does not work. the windows installer internally converts c:\prog files to c:\prog filles (x86) on 64 bit OS

Any other way ....?
0 Kudos