cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Nicolasb
Level 5

32 and 64 bit version : 1 or 2 project required

Hi,

We are creating a new 64bit version of our software. My current project install the 32bit version correctly. Should I create a brand new project for the 64 bit version or may I use the same .ism for both configuration using releases flags?

I investigated and see that I have issue around the INSTALLDIR property : how to change it at runtime based on the release flag ? I think the 32 and 64 bit files does not target the same folder... or maybe I can install the x64 version in the same folder ?

If a .ism with two configuration is to be full of patches, I think I prefer build another project, but If it can be simple, I'll go with only one project.

Thanks,
Labels (1)
0 Kudos
(11) Replies
vishnub_s
Level 3

Hi Nicolas,
We are thinking of delivering our product in 64 bit version. After some analysis, i am also in confusion about the best approach.

Following were my findings
- Since a package has to be targeted for single platform, we cannot have single installer for native support on both 32 and 64 bit machines. Hence decided to have 2 different installers by having different Template Summary.
-Even thought of having same ism with different features for 32 & 64 bit with appropriate release flags set during build time. But in this case, as you mentioned we will hit with problem of INSTALLDIR, in one of the thread,
MichaelU mentioned this can be solved thru ISWI or msi automation.

I hope you might found a better option for this requirement. Please share your ideas and suggestions. It will help me a lot, any help will be much appreciated.

Thanks in anticipation,
Vishnu 🙂
0 Kudos
Nicolasb
Level 5

Hi,

I solved the INSTALLDIR problem with a SetDirectory custom action. My action is executed after Cost Finalize ( before InstallWelcome ) and change the INSTALLDIR property. I got one action for 32 bit and another for 64 bit. These actions are executed only if the release flag string contains Win32 or x64. (ISReleaseFlags><"x64"). That way, the InstallDir is specified at runtime.

This approch is working fine for our software. x64 and Win32 installer are in the same project, but in two installers executables.

Good luck with your project!
0 Kudos
vishnub_s
Level 3

Thanks Nicolas for your instant reply. This input helps me, i will it with sample project.

Thanks a lot.
Vishnu:)
0 Kudos
ANP-Spider
Level 2

Hello,

Another approach is to have just one CA which changes INSTALLDIR in runtime based on [ProgramFiles64Folder] - for x64 release. The CA condition is simple: VersionNT64. At the same time, during designtime you just define INSTALLDIR based on [ProgramFilesFolder].

WBR,
ANP-Spider
0 Kudos
vishnub_s
Level 3

Thanks Spider, i implemented with single CA to set the INSTALLDIR.

Vishnu
0 Kudos
mjmfgm
Level 5

Hi there Nicolasb,
I have the same issue with my MSI installer. I am new to CA and would greatly appreciate your help on how to create such CA.

I have 2 different Installer one for x86 and one for x64 and I would like the installer install one or the other based on the OS.

Again thank you for your help in advance.
0 Kudos
Nicolasb
Level 5

Hello,

In my implementation, I got two distinct EXE whether we are installing x64 version or Win32 version, but both EXE are created by the same installshield project with different release flag. Release flag x64 is defined for the 64bit EXE and flag Win32 is defined for the 32bit EXE.

The custom action is a SetProperty action which is executed only when release flag x64 is set ( ISReleaseFlags><"x64" ). The action sets the INSTALLDIR property to [ProgramFiles64Folder]\MyCompany\MyApp.

I don't know if this is the best way to do it, but it works perfectly. I hope this helps.
0 Kudos
mjmfgm
Level 5

Thank you Nicolasb,
I understand the 2 different releases. I made those, I do not understand the logic on how to call the different releases.

I do not understand the CA on how to call the relases and where do I set the directory.

I assum that I have to just set the directory path in the x64 and x86 release. And then have the CA call the correct release depending on the OS?

If you could please, could you please tell me how you set this up with the CA.

Thanks again for your help.
Ps: I never wrote a CA that's why I am lost here. Sorry.
0 Kudos
Nicolasb
Level 5

mjmfgm wrote:
I assum that I have to just set the directory path in the x64 and x86 release. And then have the CA call the correct release depending on the OS?


You are correct about this.

Creating the CA in InstallShield 2k8 is easy :
    Select "Custom Actions and Sequences"

    Right Click on "Custom Action"

    New set Property

    Follow the instruction on the wizard and what we said before to fill in the property to be edited, its new value and the condition to execute the CA
0 Kudos
mjmfgm
Level 5

Hi there, I was out all day and did not had a chance to check my email. Thank you again for your help Nicolasb.

When you state : "fill in the property to be edited, its new value and the condition to execute the CA"

I do not quite understand this. I will take a look at the CA wizard and give it try.

Thanks again Nicolasb for your help.
0 Kudos
mjmfgm
Level 5

Hi there, I tried to create this CA and for the heck of me can't find the "ISReleaseFlags" function in the drop-down list for the "SetProperty". I am using IS 2009 but that should not make a difference I believe. That function "ISReleaseFlags" should be there correct?

Thanks again for your excellent help sir.
0 Kudos