Windows application packaging - Guidelines

What should not be repackaged
y y y y y y y Pre-existing vendor MSIs Operating Systems Operating System Service Packs and Hotfixes Internet Explorer Windows Media Player Windows Installer Service Driver Installers (or any package that is hardware dependant) - you can do it, but it is usually more painful than it's worth, and the benefit is generally negligable. NOTE: OS protected files cannot be updated by an MSI

Package Build Client setup
Use a clean machine to repackage your applications
To ensure a successful capture and valid package creation a clean PC is required to be used to packaging/repackaging. What this means is that the PC should only contain the following components : Base OS All available service packs All available hotfixes The latest versions of .NET Framework, MDAC, IE, Media Player, Sun JavaRE NO additional applications

y y y y y

Exit all applications, stop unnecessary services
Close all other applications and stop any unnecessary services to minimise changes to your system while packaging/repackaging. This includes : Antivirus/Antispyware software (including the Windows Defender application) Firewall software (including the Windows Firewall) Network adapter software (driver helpers such as Intel ProSet tools, or Sierra Wireless T3G apps, etc) y y y Virtualisation / emulation services (VMware Workstation, Daemontools, etc) Unecessary services (Windows Update, IIS, SQL, Indexing Service, etc) Set a static IP (DHCP updates the registry :P)

y y y

You can use AutoRuns (by SysInternals and available through Microsoft) to check what programs or services are starting automatically on your system.

then 1. then apply a transform 2. Can you wrap the application into an MSI. Can you capture and repackage the application. If its a legacy application. if not then 4. If possible have the output of your capture/repackaging directed to a network location. if not then 3. then capture and repackage 3. This ensures that files or configuration from the repackaging tools will not be included in your package. Can you script and silently install the application.Black Viper's website has handy guides to what services really need to be running on a Windows XP PC and Windows Vista PC. see below) Temporary files User-specific files or information Files managed by Windows File Protection y . Ensure your packages are clean Review each package after creation and check for the following: Merge Module components (MDAC is an example of this. any MDAC components should be deployed in an MDAC package not your application packages) y y y y y Legacy uninstall references HKCU keys (often unnecessary. If its an InstallShield or Wise Package. if not then 2. Contact the vendor for an updated install Repackage from a network location Run your repackaging tool remotely from a mapped drive or UNC path. Defrag and Optimise y y y Delete temporary files Configure static pagefile A lightweight registry cleaner / defrag tool (Eusing Free Registry Cleaner / Auslogics Registry Defrag) y A lightweight disk defrag tool (Auslogics Disk Defrag) VMware Snapshots Take a snapshot of your Package Build Client (you did install to a VMware Virtual Machine. If its an MSI. didn't you???) Golden Rules 1.

A reboot is good practice to ensure you capture all the changes made by the application. Launch the application Sometimes applications may perform operations on first launch that you will want in your package. place them in a separate feature to minimise Windows Installer repair time experienced by users. Reboot following installation Always reboot your system after the installation has completed (if you are not prompted). Remove unnecessary user files / values To prevent Windows Installer triggering a repair ensure you remove unnecessary files and values such as : HKCU values User profile files Temporary files Unnecessary files y y y y If you do want to include HKCU values. . Also note that a reinstallation of the application package could overwrite HKCU keys with the package defaults instead of the user customised settings. These information could include: Accepting a license agreement Providing a serial number Registering the application Creating the default configuration y y y y You need to capture this information so that you can smoothly deploy the package in your environment. don't worry SetupCapture will restart. Often vendors will but runonce keys to preconfigure settings or register dll or replace a file that is in use. Alot of packaging tools also include validation tools.If possible get someone else to also check the package is clean before promoting to production. just remember to test before and after running any validation tool.

Sign up to vote on this title
UsefulNot useful