Spinner Software Home About
KB Contact

How to use the Install Tuner

Published: 23 March 2015 - Last update: 12 Dec 2015 (c) Nicolai Kjaer / Spinner Software B.V.

The Install Tuner is a tool to create a standard package for a client, based on rules and templates. The final package typically contains a transform file (.mst) and a deployment file (SMS/RES/etc). Additional files can be created automatically, such as documentation and test scripts.

screenshot of main window

The Basics

Once set up, these are the steps taken per package:

  • 1. Select the correct Master Template for the client and package type.
  • 2. Browse to the original installation folder and select the primary MSI.
  • 3. Select any original transform needed (e.g. for a specific language).
  • 4. Verify (via the Product Infostring) that the product, version and language is correct.
  • 5. Verify the output filename and type (the default filename is autocreated based on the template rules).
  • 6. Change any Variables to their proper value (variables are declared in the template).
  • 7. Change options to match the desired output and additional files (such as documentation).
  • 8. If needed, select a Deployment option to automatically create a deployment file for that environment.
  • 9. Click the Create button and wait for the result.
When step 9 is completed, the new package is ready in the specified output folder.

The following files can be created automatically:

  • .mst : The transform file with the changes.
  • Install.cmd : Script to install the product.
  • Uninstall.cmd : Script to remove the product.
  • .sms : SMS file
  • .xml : RES Building Block
  • .doc : Word documentation.
  • .txt : Text documentation.
  • _WiLstXfm_result.txt : Precist list of changes made with the transform (requires MS SDK).

Notes: These features are not yet available, but planned for future updates:

  • RES Building Block with User settings automatically removed from the package.
  • Interactive mode for the MST creation (run Wizards, autosave as MST at end).


  • Identical changes made to all packages for a client.
  • Consistent naming conventions per client.
  • Easy generation of documentation and deployment files.
  • Able to serve multiple clients using different templates.
  • Variables can enforce your custom requirements.


  • Currently cannot run Wizards in interactive mode.
  • RES support is limited until further use is seen.


Most of the magic happens in the templates, and require some time to set up properly. The defaults are very basic, but a good starting point.

The Master Template

The Master Template is the template containing:

  • Default locations for the other templates and input / output.
  • Variable declarations.
  • Default Product Infostring (to verify input).
  • Default output base name (based on variables and properties).
  • Any MST specific options.
  • Any updates to the SummaryInfo stream.
  • All ADD changes to to be made.
  • All REMOVE changes to be made.
  • All UPDATE changes to be made.
  • Each ADD/REMOVE/UPDATE entry is named by the database table to change, with attributes being the database fields. You can include WHERE statements. You can use [??GUID??] for a newly generated GUID.
A default template is available to customers upon request ; a tailored one can be made for a fee.

Other Templates

The output deployment files (SMS, RES), Word/text documentation, and Install/Uninstall scripts, are copies of the corresponding template from the current template folder (specified in the master template). They are opened and read, then all variables and properties are replaced with their transformed values before being saved as the new output file. This means you can take a file from your existing environment, change the values to [PropertyName] or [VariableName], and save it as a new template.

Tip: In addition to the variables and properties, you can use these variables in the templates:
MSI_INPUT_FILE : The name of the input MSI.
MST_INPUT_FILE : The name of the input MST.
TEMPLATE_FILE  : The name of the template file used.
OUTPUT_FILE    : The name of the output file.
MSI_OUTPUT_FILE: The name of the output MSI file.
MST_OUTPUT_FILE: The name of the ouput MST file.


Default Install.cmd for MST generation:
MsiExec /I "my.msi" TRANSFORMS="my.mst" /Qb-!
Default Install.cmd for MSI generation:
MsiExec /I "my.msi" /Qb-!
Default Uninstall.cmd:
MsiExec /X{ProductCode} /Qb-!
Default Product Infostring:
[ProductName] [ProductVersion] ([ProductLanguage])

(c) 2015 Nicolai Kjaer, Spinner Software B.V.