InstallShield is one of the most popular tools used to build software installations. It can construct MSI installers, or be used to wrap an EXE around an MSI (known as an InstallShield wrapper). Depending on the version of AdminStudio you have, you also have a copy of InstallShield. The enterprise edition of AdminStudio comes with the InstallShield Premier, while the professional edition of AdminStudio comes with InstallShield Professional. I will not be going over the differences in these editions, but they can be found at http://www.flexerasoftware.com/products/installshield/installshield.htm.
In addition to creating MSI’s, InstallShield can also be used to edit MSI’s. Keep in mind that an MSI is just a database with tables and rows. Some of the most popular edits to make are configuring shortcuts, adding registry items, adding files or folders, and modifying properties.
Edit the MSI or use a transform?
A lot of these same settings can be modified using a transform instead of modifying the MSI directly. There are a few advantages and disadvantages to modifying the MSI directly versus creating a transform. You have to evaluate what is best for your organization.
If you modify the MSI directly, you cannot have different installers for different areas of your organization. If you need this, then a transform is definitely the way to go. If you have only one installer for the entire organization, modifying the MSI directly may be the way to go. By modifying the MSI directly, your install is 100% guaranteed to have your customizations. With a transform, there is always the chance that something may be modified on the end user’s machine that prevents the transform from being applied correctly.
Normally, transforms can be used across different minor versions of products (i.e. the transform built for Adobe Reader 10.1 also works with 10.2). Because of this, a transform may be better suited for software that updates frequently.
Given all of these considerations, I almost always modify MSI instead of creating a transform. To me, modifying the MSI is cleaner, and I have seen properties that I have defined in the transform get “lost”, especially shortcuts that I have modified.
Files / Folders
By editing the MSI, we can add files and registry keys to our installation. You might need to do this if you want to insert license information, insert a custom configuration file, or anything else that needs to go into your installation. The process for adding or modifying a file is almost exactly the same as a registry key.
To add a file or folder, select the “Files and Folders” node under “Application Data”. This presents four boxes in the right pane. We are mainly concerned with the destination computer panes. Here we can see exactly what files the MSI is copying to the system. To add a new folder, right-click on parent folder and select “New Folder”. To add a file, right-click in the “Destination computer’s files” pane and select “Add”. This presents a normal Windows Explorer window. Navigate to the file you want to add and click “Open”. Next you are presented with this box:
I always select “In a new CAB file” and then “Stream CAB into the Windows Installer package”. This keeps the install to one MSI, instead of having another CAB file that must be present. If you leave “On the source media (uncompressed)” selected, the file you inserted must be in the same location as it is on your computer during install on every computer. This method is NOT recommended, and makes installs much more difficult.
Once I click OK, the file is inserted. Now you can just click “Save” in the toolbar and InstallShield recreates your MSI with your new file.
The ability to retain that one MSI file to be used for install is another advantage of modifying the MSI versus creating the transform. A transform will create the CAB file, which must be present at installation. There is no way to stream a file into a MST file.
To modify the registry settings for your install, select the “Registry” node under “System Configuration”. This screen looks exactly like “Files and Folders” and works almost the same way. To add a new registry key, simply right-click on the hive and highlight “New”, then select “Key”. To add a value, right-click in the “Destination computer’s registry data” pane and select the value type. To fill in the value data, simply double-click on the value.
To modify shortcuts, select “Shortcuts” from the “System Configuration” node. Here, you see where the install will place them. You can remove whichever ones you do not want, such as on the desktop, or move them into different folders in the Start Menu.
You can also modify the start parameters of your shortcut. This can be used to launch the software in a particular fashion. This is normally an advanced feature that you will get documentation with the software. These modifications are made by selecting the shortcut and inputting the new parameters in the “Arguments” box.
Finally, you can use “Property Manager” section under the “Behavior and Logic” node to define various installation properties. The properties here are MSI-specific, meaning that just because the property is definable in this MSI, it may not be in another. A few common ones to look for are:
ALLUSERS – When set to “1”, this will install the program for all users. When set to “0”, it will install for the current user.
EULA_ACCEPT – When set to “1”, this will auto-accept the EULA. When set to “0”, it will prompt. EULA_ACCEPT is actually pretty specific in my example. Look for anything that has “EULA” in it. Please ensure that you EULA supports setting this parameter.
SERIAL – Normally, this is where you can input a serial number for the software. Other variations of this may be anything starting with ACTIVATION or PRODUCT.
REBOOT – When set to “1”, it will reboot the computer after install (if needed). When set to “0”, it will not. Other variations may be PROMPT_REBOOT, or anything with REBOOT in its name.
InstallShield is an extensive product. I would encourage you to take a look at the rest of sections not covered in this article to see if they can help you with your deployments. Studying InstallShield can also help you to better understand how a MSI install works.