Video Screencast Help
Symantec Secure Login will be live on Connect starting February 25. Get the details here.

Application Packaging Best Practices for Windows XP: Part 3

Created: 22 May 2007 • Updated: 09 Apr 2009
Language Translations
Scott Hardie's picture
+1 1 Vote
Login to vote

In this installment of his application packaging series, Scott Hardie covers Package Testing, Release Management, and Transformations -- key components in any packaging project.

Editor's Note: Here's a list of the other articles in this series: Introduction, Part 1, Part 2, Part 3, Part 4, Part 5.
Contents Packaging Work Flow – Package Testing
  • Validate compliance with standards – This task runs a Package Validation Tool. Package Validation checks Windows Installer packages to ensure reliability, internal consistency, and conformance to standards. Error checks are performed based on rules in validation modules, including Microsoft's Application Specification for Windows XP. For specific information on Windows logo requirements, check Microsoft's Windows Installer SDK help for Windows Installer and Logo Requirements.
  • Test package – This task runs the Test Expert Tool. To perform integration and acceptance testing of the package, to determine whether it meets company standards and works correctly in the end user's environment.
  • Distribute to share point directory – This task runs the Package Distribution Tool. To distribute the repackaged application, including all of its source files, to the share point directory.
  • Import into Software Manager Database – This task runs the Software Manager. To import the repackaged application into the Software Manager database.
  • Resolve conflicts – This task runs ConflictManager. To detect and resolve any conflicts between this new package and other packages.
  • Prepare package for deployment testing – This task runs Pre-Flight Instrumentation. To create a preflight .MSI package from a package that you plan to deploy. You then deploy the preflight package, which tests end user computers before deployment of the real package.
  • Deploy instrumented package – Deploy the preflight package using the deployment system you normally use.
  • Analyze Results – This task runs Pre-Flight Analysis. To view the results from the deployment of preflight packages. During installation, you must have entered a valid URL to a Preflight Analysis Web application.
Packaging Work Flow – Release Management
  • Make package available – This task runs Software Manager. To complete this task, you will use Software Manager to update the status of the package in the Software Manager database to Available and copy the package to the Available Packages directory in the share point directory. The package status helps you determine whether a package can be deployed to end users. The Available Packages directory provides a centralized location for storing all of your packages that are complete and available for deployment, keeping them separate from packages that are still in development.
  • Distribute package – This task runs the Package Distribution tool. To complete this task, you will use the Package Distribution tool to distribute the package to a location that can be accessed by end users. Typically, this would be a shared network drive or a distribution system.

A transform is a collection of changes applied to the base application package. Transforms can be used to customize an application package installation in many ways such as customizing native .MSI packages received from vendors comply with customer standards or to alter a vendor .MSI package with custom settings for a specific group of users or business unit. Transforms are saved with an .MST extension and associated with the .MSI at the time of installation. The command line to install an application using a transform would be similar to the following:

msiexec  /qb /i <path>\appname.msi TRANSFORMS=@appname.mst.

Note: The "@" symbol denotes the transform is located in the same directory of the .MSI package.

Transforming MSI Packages using InstallTailor

Wise for Windows Installer has provided the InstallTailor tool to aid in the creation of transforms. InstallTailor can be used primarily for a native MSI provided by a vendor. This tool will simulate the installation of the application and allow you to make the appropriate selections for installing the application. These changes will be saved to an .MST file, which can be called at the time of installing the application.

To create a transform file, do the following:

  • In Workbench, select the Tools tab and then highlight the InstallTailor icon. Read the InstallTailor Summary Information located in the Right Pane, before starting. Double-click the InstallTailor icon in the left pane to launch InstallTailor.
  • A dialog box will display to select the .MSI package in which to base this transform; Also browse to your company Base MST template. Click Next.
  • A MST is created in the directory with the MSI, Click OK to continue.
  • Enter a shortcut name in the Shortcut Name field. This shortcut is created by InstallTailor and contains the MSIEXEC command to run the transform.
  • Be sure to select the checkbox to edit the transform file after creation.
  • After the .MST file is opened in Wise, verify that the Dialogs are configured properly and other company specific settings are defined in the transform (ie. ALLUSERS property, etc.).
  • Make any other necessary modifications to the .MST at this time.
  • Select Finish

Adding files and registry keys using transforms

To add new or additional files using a transform, do the following:

  • Install the base .MSI on the packaging workstation
  • Create a new transform using the steps above.
  • Within the transform, add the new files or registry keys needed for the installation.
  • Save and then compile the transform.

Replacing files using transforms

To replace an existing file in the base .MSI with a new file in the transform, after creating the transform, do the following:

  • Install the base .MSI on the packaging workstation
  • Create a new transform using the steps above.
  • Within the transform, remove the existing file and then re-add it.
  • Save and then compile the transform.
Note: A .CAB file will be created as a result of adding or replacing files. This .CAB file must accompany the .MST in the application package directory.

Transform Naming Convention

  • Transform(s) should be placed in the same directory as the base MSI.
  • The naming convention for the transform should incorporate a site code in front of the name to distinguish amongst the various transforms. For example: HOU-Reflection_90.MST, NSH-Reflection_90.MST
  • If a different transform is needed for specific business units or groups at a location, the naming convention should incorporate a site code and business unit or group name in from of the package name. For example: NSH-FIN-Reflection_90.MST, NSH-HR-Reflection_90.MST
  • An Appname.txt file should be created for each MST to note configuration changes to the base MSI.

Transforming Native .MSI Packages

Native .MSI packages are application installations provided by a 3rd party vendor in a Windows Installer format. SetupCapture should not be run on applications provided in a Windows Installer format (.MSI). When native .MSI packages are received from the vendor, transforms can be used to customize the installation to meet the customer standards. Some native .MSI packages may provide utilities in which to customize these installations and create the transform as well.

Most native .MSI packages will come in an uncompressed form and should not be compressed into a single .MSI using Wise for Windows Installer. The native .MSI package along with the associated files and directories should be copied to a directory on the local packaging server. The application package directory and any transforms created in-house should follow the naming convention standards outlined earlier in this document.

Application Packaging Best Practices for Windows XP: Part 2

Application Packaging Best Practices for Windows XP: Part 4