sanket
sanket

Reputation: 1

How would I copy/Install only one of the two sets of files depending on the user selection in Installshield?

I am using Installshield 2014 Premier Edition. I am creating the installer for my desktop application.

Installer requirement : Only one installer should be used which can find the JRE present in the system (32 bit or 64 bit) and depending on that it chooses the files to install on the target machine.

Methods those I have tried but did not worked out

1. I made a user defined property or a variable which can be selected/changed in the dialogues for 32bit/64bit. And gave this property in a condition in components or features. Depending on the condition, the files should be copied. But at the end I found that the condition that I gave in components or features are checked before the first dialogue comes. So It means that the property that I used to check are evaluated before the install welcome window comes. So none of my files of 32bit or 64bit are copied. only the common files(Or Components/features) are not under any condition are copied in target system. Question : Is there any way that I can delay the step which is evaluating the property initially or can I re-initiate after the dialogue window comes?

This method does not work out. So I tried another method.

2. I used "support files" option. But It did not work too. Because my 32bit and 64bit files are with same name. If I place a file with same name it copies the file which I put in the last and copied it in to the "TempFolder" of target system. And installshield does not have the option for creating a folder in support file. If I am able to do that my problem can be solved. Question : Is there any way that I can copy files by script from the packaged installer to target machine? How would I place these file? please explain.

Please help me find the solution for this. If anybody has the different solutions, those are welcomed too.

Upvotes: 0

Views: 433

Answers (2)

Meliart
Meliart

Reputation: 56

for this the best way is using systemSearh for set your condition property.

in installshield designer its under behavio and logic.

right clic and choose "add..." in the last dialogue u ll find a check box "store the value in the property and use the property in an install condition"

Upvotes: 0

Michael Urman
Michael Urman

Reputation: 15905

I'm a little unclear whether you want to:

  • Install a 32-bit or 64-bit JRE depending on the target machine, and then install your app, or
  • Detect either a 32-bit or 64-bit JRE (or both), and then install a 32-bit or 64-bit variant of your app.

For the former, I would suggest creating and using InstallShield Prerequisites. You can condition them on the platform of the target machine so that only one will install.

For the latter, I would suggest using a Suite/Advanced UI project that includes packages (probably MSI packages) for each of your 32-bit and 64-bit builds. If you are certain that at least one JRE will be present, and that this will not change, you can use eligibility conditions that detect the presence of the appropriate JRE to enable or disable each package. If instead you may need to deliver the JRE, or need to allow for it to change, you should probably organize your suite into separate features and set up feature conditions to select which will be installed by default, possibly even allowing the user to select which version to install.

Upvotes: 0

Related Questions