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

Wrapping an existing installation?

Hi,

I'm new to InstallShield but I think I have simple requirements, but sadly I'm in need of help/advice.

What I need to do is take *existing* installer software and wrap it up so someone only needs to double-click an MSI and it will install.

e.g.

Software that has an MSI that I would execute by using msiexec and passing a few command-line arguments.

How do I wrap that in an MSI that automatically passes those command-line arguments.

i.e.

Microsoft Project silent install I would run by using the command:

msiexec /i prjstde.msi /qn /norestart /l*v install.txt

Can I create an MSI that would execute that command when double-clicked? Can I create an MSI that compresses all the files into one MSI and then executes that command when double-clicked?

Another example would be an install that runs by clicking setup.exe. I would need to create an MSI that simply starts setup.exe (preferably again by compressing all the files within the msi.

Can anyone help, or give me advice on where to read something that would be helpful.

Regards,
Nick
Labels (1)
0 Kudos
5 Replies
GarrettDyer
Level 5

It's not the greatest situation to get yourself into, but you can make it tenable, for sure. I have taken an existing Wise installation package and wrapped it in an MSI and had great success with it. I use a vbscript custom action to perform prechecks, execute the Wise package, passing it the values it needs to run silently, and also do the other things that were being done manually by our support staff.

You'll want to be mindful of other MSIs that might need included in your installation, because creating a wrapper MSI around them will cause you some headache. In that case you may be better off creating an InstallScript project.

But yeah, go for it!
0 Kudos
Matthias1967
Level 5

Yes, it is possible to wrap an existing installation into an MSI the way Garrett has written. However, you should keep in mind that Windows Installer will not cleanly uninstall, repair, or roll back such a "wrapped-up" installation. Or, to phrase it differently: it is an .msi package, but it does not use Windows Installer the intended way.

If you do want to migrate to Windows Installer and to use Windows Installer features, you will have to migrate your project. For the first steps of setting up the Windows Installer components, a repackager may be helpful.
0 Kudos
brisnick
Level 3

Thanks GarrettDyer and Matthias1967.

Is there a simpler way?

Somehow take an existing installer and just create a setup.exe with an iss file (or similar) that holds the commands that must be executed for the existing package?

I know I could create a batch file or vbScript to launch an install, but I'd like to have a solution where running one file (or for a manual installation double-click a file) would instigate the installation with all required command-line switches/flags, etc.

I think it would look much more professional to run setup.exe rather than setup.bat!

So essentially, all I need to create is the setup.exe that starts (for example):

msiexec /i prjstde.msi /qn /norestart /l*v install.txt

I could also write a VB/.Net/whatever program as a launcher but since the company has purchased InstallShield it makes sense to use it (when it arrives!!)

So, any tips to where I would start and I'll work it out from there.

Cheers,
Nick
0 Kudos
KathyMorey
Level 10

Your best bet might be to use an InstallScript project, so that the wrapper project isn't registered on the machine as a Windows Installer application.

We've done something similar (although ours will install, uninstall or modify a suite of products). We put any customer input required in OnFirstUIBefore, and used OnFirstUIAfter to simply run the other executables or MSI files. We also set up the InstallScript product so that it always installs as though it were the first time, and handled upgrades by detecting if the embedded project is present and running the current installation with the appropriate command line switches to the MSI. (We do display a dialog in that case to detemine if we should upgrade or uninstall.) Good luck!
0 Kudos
foerdi
Level 4

Why do you need a bootstrapper? I don't see prerequisites or elevation in your requirements.

Just use Orca.exe and add following properties to your msi:

LIMITUI
From your "double-click" scenario I would recommend using Basic UI (UILevel property value "3") otherwise the user will be confused if installation works or not.

REBOOT
For avoiding the restart and the prompts.

MsiLogging
For enabling the logging to %temp%/msi.log

If you still want to use a bootstrapper, use dotnetinstaller, or IS setup.exe - if you figure out how to configure IS setup.exe (standalone/outside IDE) let me know I also need that because WiX still didn't release burn.exe
0 Kudos