In June of 2004, Bob wrote a paper written for Flexera entitled New Technologies Available to Improve Repackaging. This was one in a series of articles written for InstallShield. No longer publish, I’ve quoted it in its entirety below in case anyone finds it useful…
New Technologies Available to Improve Repackaging
You know why repackaging is important. Between your own possible need for MSI formatted packages and the many benefits that Windows Installer provides, I will not repeat what you know and have heard so many times before. That said, repackaging your setups into MSI format is really not that difficult – there are plenty of tools that can help you achieve this. However, if you do not use the right tools, what you may end up with is a package that is inaccurate and prone to error. Not using the right tools can result in a time consuming process whereby you may find yourself recreating, retesting, and (in the worst cases) redeploying your packages. Hopefully you catch any problems before they make it out onto your user’s machines, but we have all had that one package that somehow made it though testing only to wreak havoc on your desktops. If a bad package makes it out and causes users to experience problems it can cause significant damage to your deployment team’s reputation. Soon every problem they experience from a slow network connection to a printer jam is deemed to be the result of something you must have done to their system.
The good news is that there have been a number of technological advancements that make repackaging more efficient. In this article we will discuss how InstallShield’s InstallMonitor, SmartScan and Setup Intent technologies work to ensure a quality package. Additionally, we will take a moment to bring a new third-party tool to your attention that works with AdminStudio to help you determine which items may or may not belong in your package.
Having the right tools for the job is what it is all about. Experience is also important, but with tools like these in your arsenal, it is not nearly as important as it once was!
You have a legacy setup.exe and it needs to be repackaged. Step one in the process is to determine what kind of setup you are dealing with. After all, it could be a MSI hiding in a self-extracting executable. From going through this step, you know a good percentage of the setups you encounter are indeed InstallShield setups. The obvious benefit here is that InstallShield knows InstallShield setups, and SmartScan is the technology you may use to take advantage of this knowledge.
SmartScan is designed to scan InstallShield Professional 5.x and later setups for additional information that may not be captured during a standard repackaging session. This may include additional files, INI files, shortcuts, or registry data. Normally this involves operating system-dependent and language-dependent files that may be included in header files. It also captures the original structure of the application, including the feature hierarchy, so even the features you chose not to install this time are included in your repackaged image and can be enabled for another group of users without repackaging again. The bottom line is that having a package that knows about these additional items will result in a more complete, and therefore more portable, package.
Many administrators that have been repackaging for more than a year or so, feel comfortable with what they know and prefer the before/after snapshot method of repackaging. While this option exists in AdminStudio, a powerful alternative also exists in InstallShield’s InstallMonitor feature. Using this method, the installation is run and AdminStudio “watches” all the files, shell links, and registry entries that are added, modified or removed by the installation. This information is captured as it is presented to the Operating System, and is used to create your MSI package. By eliminating the need for snapshots before and after the installation, the process is quite a bit faster than the traditional method, and the requirement for a clean repackaging system is more relaxed. Although not an issue for most environments, it should be noted that this feature only works on Windows NT 4.0 and later systems.
Although an installation may have intended to install certain files, such files may not always be installed. Often this situation may occur because current or newer versions of these files already exist on the target machine. These files are likely to be needed for the product to execute properly, and this can obviously be a problem when the setup is run on a system that does not already have these files. The Setup Intent Wizard allows you to scan a setup in order to identify these files, effectively recognizing the installation’s intent for these files and including them in your repackaged version.
An important part of repackaging is ensuring you do not include any unnecessary files in your package. Doing so can result in a multitude of problems from installation failures to repetitive reinstallation attempts. The filtering provided by exclusion lists have traditionally been used to help address this issue, but do not provide the detail necessary to inform you of what the items are and why they should be removed. Although not part of the AdminStudio suite itself, PackageCleaner is available as a third-party technology to address this problem. PackageCleaner scans MSI packages for “suspect” file and registry entries and provides you the details you need to determine if they should remain in your package. It does this by comparing your package’s file and registry entries against its database and then telling you what the item is, why you may not what to include it, what may happen if you do include it and situations where it may be necessary to include it. Learn more about PackageCleaner at http://www.packagecleaner.com
I hope that this quick drill-down of new technologies available to repackagers was helpful to you. If you have further questions or would like to discuss other methods and technologies, visit the InstallShield forums at http://community.installshield.com/ or AppDeploy forums at http://www.appdeploy.com/messageboards/