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

Can InstallShield do this?

Hello,

I do not currently use InstallShield, but I am interested in moving to a more professional installation package.

I currently use a windows batch file to:


  • Install Apache, MySQL, and PHP
  • Edit the registry
  • Edit the path
  • Copy files


But (as you are probably know), using windows batch files for installations is a bad, bad idea.

Does InstallShield software support doing all the actions listed above? (Specifically, can you use it to install a bunch of programs, like Apache, MySql, and PHP, along with your own files?)

Thanks,
Labels (1)
0 Kudos
(7) Replies
rasky74
Level 6

Yes see feature list.

Installing other software is handled through prerequisites or chained MSIs.
0 Kudos
Christopher_Pai
Level 16

It can, but that's assuming the redist you are going to bootstrap with a setup prereq is a properly behaving install that supports silent installations and the ability to transform the behavior to meet your needs.

Sadly, many of the open source projects tend to have low quality NSIS installers or what not. ( yes XAMPP, I'm pointing at you!! )

But even then you can use the repackager to fix that. 🙂
0 Kudos
centenial
Level 3

Thanks for your quick replies. I've downloaded a trial of InstallShield. 🙂

I've created my project, but I can't seem to figure out how to setup chained MSIs? I've read through the help file, which pointed me to:

Application Data -> Redistributables

The problem is that the MSIs that I want to install (Apache and MySQL) aren't in that list. Is there a way for me to browse so I can select the right MSI?

Or is there a different way I should be doing this?

Thanks for your help,
0 Kudos
Christopher_Pai
Level 16

0 Kudos
centenial
Level 3

Thanks! That was a helpful article.

I have one more question:

I have a batch file that I need to execute after my chained MSIs are installed. What's the best way to do this?

I see that I can create a custom action, but am not sure how to specify that it gets launched immediately after the chained MSI has been installed?
0 Kudos
Christopher_Pai
Level 16

In general, I avoid batch files because it's very difficult to write robust code and handle error exceptions.

I don't think your really talking about custom actions here, i think your saying that for the MSI's that you are chaining you need to have postinstall modifications installed.

In that scenario you could

1) Transform the MSI and insert your custom action into it so that when the actual MSI runs the modifications will also

2) Write a helper.exe that acts an intermediate between the setup.exe and the chained msi. This EXE would be the target of the prereq, it would handle the execution of both the MSI and the postinstall stuff and report back success/failure/reboot needed to the setup.exe prereq engine.

You'll see #2 in InstallShields .NET Framework prereq definitions. They call it helper.exe
0 Kudos
centenial
Level 3

Well, my problem is this:

I am running a silent install of MySQL via the chained MSI option. This installs the server; but does not add the service name to the windows service table, or configure the MySQL INI file.

In order to do that, I need to run the MySQL Instance Config executable.

Here's an example of the command I'm trying to run:

"C:\mysql\bin\mysqlinstanceconfig.exe" -i -q ServiceName=MySQL ServerType=DEVELOPMENT DatabaseType=MIXED Port=3306


I want to do this the right way, so I'm definitely open to suggestions. Is 'transforming the MSI' or writing a helper.exe the best way to handle this?
0 Kudos