|
This is a three part White Paper on Pocket Soft's RTPatch, Microsoft's Windows Installer, and third-party utilities that are based on Windows Installer.
White Paper: Windows Installer - Part I
Why Use Windows Installer?
Note:
It should be noted that Pocket Soft does not use Windows Installer - based installs for its RTPatch product line at this time. All installations for RTPatch are created with InstallShield® Professional by InstallShield®.
Microsoft's Windows Installer technology provides an open installation format for software installations. Though necessary for some, Windows Installer is not the only installation solution available, and in some cases, the benefits it provides are either unnecessary or not worth the concessions that must be made in order to use it. The purpose of this White Paper is to encourage thought not only on how the choice of installation technology affects the install process for your software, but also how that choice affects the patching of that software over its lifetime.
The reasons to use Windows Installer from an installation standpoint are well known and documented. Some commonly cited reasons are:
- Windows logo requirements. Some Windows logos require that a Windows Installer installation be used.
- Ability to customize the installation. Since Windows Installer is an open format, System Administrators, for example, have ready access to modify internally developed as well as third-party installation logic.
- Support for .Net. Windows Installer provides .Net support not readily available from other sources (e.g., support for the Global Assembly Cache).
- Native OS support for the installation runtime. Current and future Windows operating systems ship with the Windows Installer runtime files. This can reduce the size of your installation.
- Additional Windows Installer features. For example, Windows Installer provides self-healing installations in the event that installed files are damaged or deleted, install-on-demand, etc.
RTPatch supports Windows Installer by creating 100% compatible Windows Installer patch files. The output of this patch creation option is an MSP patch file that meets the format defined by Microsoft in the Windows Installer documentation. Since RTPatch continues to offer a stand-alone, installation independent patch solution (RTP files, in addition to MSP files), our technical support group has had the opportunity to work with many customers who have tried using Windows Installer, and then reverted to RTPatch "Classic." In working with those customers, we have compiled a list of the five most commonly cited reasons for discontinuing Windows Installer
1. Increased Complexity.
Windows Installer adds a layer of complexity to your installation and patching process. All file copying, shortcut creation, registry manipulation, etc, occurs through the Windows Installer engine. Whereas the "classic" RTPatch approach (via an RTP file) modifies files directly, the MSP approach requires that the patch process also executes through the Windows Installer engine. With added complexity, it follows that the next Windows Installer drawback would be:
2. Increased Overhead.
The added features and functionality of Windows Installer come at a price: overhead. This overhead can be in the form of the Windows Installer engine, which may need to be shipped with your software in some scenarios, but also in the Windows Installer format itself. To create an MSP patch, for example, RTPatch must include not only the byte-level changes, but also numerous Windows Installer database transforms.
3. Loss of Reliability.
Relative to the installation alternatives currently available, Windows Installer is a new technology. At the time of this writing, Microsoft is in the process of releasing its third major revision of the core architecture, but the technology is still rather "green." Though the 3.0 release and releases that are certain to follow will invariably increase the reliability of the Windows Installer option, existing tools currently have an edge with regard to reliability.
4. Increased Requirements to "Plan Ahead" for Patching.
In the past, Pocket Soft has held that installation and patching are two completely separate tasks. Since RTPatch is installation independent, the method used to install software was largely a matter of personal preference. Though RTPatch continues to offer a completely stand-alone patch format (RTP), Windows Installer requires a different approach to the relationship between installing and patching. When you decide to use Windows Installer, you must consider this new viewpoint. The open format Windows Installer installation approach specifically addresses the need to patch software (via the MSP patch format). This format requires that you consider the patching needs of your software when the installations are authored. This added demand for the install developer to plan ahead leads to the final item:
5. Added Demands for In-Depth Understanding of Documentation.
This is easily the most often overlooked requirement when using Windows Installer. In the past, the availability of intuitive installation tools such as InstallShield and Wise made an intimate understanding of the installation process necessary only when performing extremely complex tasks. Though tools such as Microsoft's installation validation and InstallShield's "Best Practices" feature makes crafting valid Windows Installer installs easier, that is far from all that is required to create an installation that will be successful at install and patch time. If you choose to use the Windows Installer technology, it is very important that you have a good understanding of the underlying technology. For patching, it is imperative that you read and understand the MSDN documentation regarding the requirements of Windows Installer upgrades. Knowing the different types of upgrades, when to change various GUIDs and restrictions/limitations on the types of changes that can be made to an installation will greatly ease the later creation of MSP patches with RTPatch, or any other MSP-generation tool.
White Paper: Windows Installer - Part II
Considerations When Using Windows Installer and InstallScript® MSI Projects from InstallShield®
This section of the White Paper is designed for those who have either already decided to use Windows Installer and are considering using InstallShield's Windows Installer installation authoring system, or who already use InstallShield and Windows Installer and would like to maximize the compatibility of their installations with RTPatch.
The Problem
InstallShield® Developer provides tools to create two types of Windows Installer based installations: "Basic MSI Projects" and "InstallScript MSI Projects." Though both options allow you to create Windows Installer installations, the level of compatibility that you can achieve with Microsoft and third-party tools such as RTPatch, can be drastically different.
InstallShield documents these differences in their help library . Basic MSI Projects (the default project type) are recommended when you need to:
- Maximize compatibility with Microsoft tools (for example, SMS).
- Maximize compatibility with other administrative tools (for example, Pocket Soft's RTPatch).
- Maximize the possibility that users and third parties can customize a setup for redeployment.
- Allow all installation steps to execute through the Windows Installer service.
- "Need to author your installation in an open format."
InstallShield's documentation further points out that Basic MSI Projects do provide the ability to run InstallScript code; however, there are limitations as to which functions are available.
What does this mean in a real sense? The heart of the matter is that when you use InstallScript MSI Projects, you lose your 100% Windows Installer compatibility. This affects not only third-party software such as RTPatch, but also Microsoft's own Windows Installer tools. Though this is documented in InstallShield, our experience with our customers indicates that the full extent of this incompatibility is often not realized until it is time to actually create a patch.
To help alleviate the problem, RTPatch has included features that will enable an InstallScript MSI Project installation to patch properly. Note that though your basic InstallScript support, events, etc. should be unaffected, you may lose some other characteristics of your install. In particular, your User Interface and UI Events, which are controlled by the InstallShield install front-end (often setup.exe), will be lost since this front-end is bypassed. Though we have many current customers who are using RTPatch in exactly this manner with great success, your own success depends on your particular installation and whether or not the loss of functionality in the install experience will be acceptable.
Conclusion
As documented by InstallShield and highlighted in this White Paper, RTPatch's ability to process your installations is limited when InstallScript MSI Projects are used. For this reason, Pocket Soft recommends using the open format of Basic MSI Projects.
Common Questions
Q:
Is RTPatch 100% Microsoft compatible?
A:
Absolutely. RTPatch is designed around the open-format of Windows Installer installations as defined by Microsoft's documentation. Additionally, Pocket Soft plays an active role in the Beta programs for new MSI versions, and continues to add features and functionality to support new releases of the standard. RTPatch is Microsoft compatible.
Q:
Is RTPatch 100% "InstallScript MSI Project" compatible?
A:
No. InstallScript MSI Projects produce MSI installations that cannot execute directly via msiexec.exe - they must be driven through an InstallShield front-end (typically, setup.exe). RTPatch circumvents this requirement at patch apply time. Consequently, some install logic may be lost. Depending on the requirements of your installation, this loss of functionality may be an impediment to patching successfully. For this reason, Pocket Soft recommends using the open format of Basic MSI Projects.
Q:
Will a future release of RTPatch provide more support for InstallScript MSI Projects?
A:
Pocket Soft continues to enhance the usability, reliability and flexibility of its MSI patching component. When possible, we will add functionality to enhance InstallScript MSI Project support; however, since InstallScript MSI Projects rely on a partially closed format, it will not always be possible to provide 100% compatibility.
White Paper: Windows Installer - Part III
RTPatch and Windows Installer FAQ: RTPatch for Windows Provides Advanced Patching Capabilities to Windows Installer
RTPatch for Windows is designed for developers who require advanced patching capabilities not available with Windows® Installer patching.
We have collected a series of frequently asked questions and provided them below. In the FAQ that follows, "RTPatch" refers to RTPatch for Windows and "WI" refers to Windows Installer, formerly known as MSI (Microsoft Installer).
Note:
Be sure to read Pocket Soft's Windows Installer White Paper for a closer look at the underlying Windows Installer technology.
Overview of Windows Installer FAQ:
- What is Windows Installer?
- Do I have to use Windows Installer if I write applications for Windows?
- Do I have to use Windows Installer to use RTPatch?
- If I install with Windows Installer, and then use RTPatch, will my application still be eligible for "Windows Certification?"
- How is the Windows Installer Support in RTPatch different than previous RTPatch releases?
- How do I use the new Windows Installer support in RTPatch?
- How does RTPatch implement its Windows Installer support?
- Is Pocket Soft committed to future support of Windows Installer?
- Can I use RTPatch with third-party WI wrappers, such as those sold by InstallShield® and Wise Solutions®?
- Windows Installer already offers patching, why do I need RTPatch?
- Is RTPatch different from patching provided by installation utilities such as InstallShield Developer 8 and Wise for Windows Installer 4, etc.?
- What are the key benefits of using RTPatch over the Windows Installer patching?
- Does RTPatch also support patching file installed with non-Windows Installer installations?
- Are future enhancements for patching non-Windows Installer installations in the works?
Q: What is Windows Installer?
A:
Windows Installer is an installation and configuration service, written and maintained by Microsoft, that allows developers to create standardized software installations. Current and future releases of Microsoft operating systems include WI as part of the Windows operating system. Versions of Windows 9x and NT that were released prior to WI may use the technology by applying a Microsoft supplied service pack.
Q: Do I have to use Windows Installer if I write applications for Windows?
A:
No, there is no requirement that you use WI to install your software. To obtain "Windows Certification," however, you must use WI.
Q:
Do I have to use Windows Installer to use RTPatch for Windows?
A:
No. RTPatch is stand-alone update software that makes no assumptions regarding installation technology. The RTPatch support files provided for WI are completely optional.
Q:
If I install with Windows Installer, and then use RTPatch, will my application still be eligible for "Windows Certification?"
A:
Yes. Usage of RTPatch does not negatively impact your application’s eligibility for Microsoft’s Windows Certification.
Q:
How is the Windows Installer Support in RTPatch different than previous RTPatch releases?
A:
The current version of RTPatch includes major improvements upon previous Windows Installer support modules. The support in RTPatch offers 100% integration with Windows Installer, meaning that the patch output is a Windows Installer-style upgrade file (MSP patch). What is different is that the actual file patches use Pocket Soft's industry standard patching technology, giving developers the ability to create the complex patch files that are needed to upgrade their software. RTPatch's Windows Installer support allows developers to combine the features, reliability and performance of RTPatch with the now standard MSI installation technology.
Q:
How do I use the new Windows Installer support in RTPatch?
A:
Windows Installer compatible patch files can be created with RTPatch using either the Graphical User Interface (GUI), or the scripting tools. Both options allow developers to create patch files from start to finish - it is not necessary to convert project files to scripts or vice-versa. RTPatch scripting language is a stand-alone language based on the same scripting language that RTPatch customers have used for over ten years. Several new commands have been added to support the special needs of Windows Installer.
Q:
How does RTPatch implement its Windows Installer support?
A:
RTPatch uses Microsoft's documented Windows Installer API. In other words, the patch file output (MSP) that RTPatch creates is 100% compatible with the Windows Installer engine.
Q:
Is Pocket Soft committed to future support of Windows Installer?
A:
Yes, because we are committed to supporting our users. Our stand-alone architecture makes it easy to add functionality and retain reliability, while quickly responding to our customers’ changing needs.
Q:
Can I use RTPatch with third-party WI wrappers, such as those sold by InstallShield® and Wise Solutions®?
A:
Yes. RTPatch can be used with any Windows based software regardless of how it was installed. WI is an installation system written by Microsoft. Wrappers are user interfaces that sit on top of WI. RTPatch works with WI, so it works with installations authored by commercially available wrappers (e.g., InstallShield Developer 8, Wise for Windows Installer 4, etc.), internally developed custom wrappers, Visual Studio Installer, and Orca edited installations.
Q:
Windows Installer already offers patching, why do I need RTPatch?
A:
You might not. RTPatch is an advanced software update system that is not intended for a mass audience. Some developers may find that simple applications can be updated by the WI patching system; however, many developers will discover through usage of that system that WI patching does not meet their needs. For example, just some of the scenarios where WI is ill-suited as an update solution provider:
- Any system that installs files to the global assembly cache (GAC). RTPatch provides unique solutions to Windows Installer's GAC patching problem that are seamlessly available to patch file creators. If you install files to the GAC or if you will need to in the future (.Net programming), RTPatch provides solutions to your GAC patching needs that require no custom development or programming.
- Any system with files larger than 5MB. WI does not scale well with large files. For example, testing by Pocket Soft with 6MB file updates resulted in an average build time ratio of 1:9 in favor of RTPatch (< 1 minute for RTPatch versus over 9 minutes for WI).
- Any system with a large number of files. Pocket Soft has customers that routinely use RTPatch to update tens of thousands of files, totaling hundreds of megabytes of information - without a hitch.
- Any system with user-customized file security and file attributes. RTPatch provides a simple method to retain those changes, Windows Installer does not.
- Cases in which you wish to support multiple old versions to be upgraded to the latest. If you do not have the luxury of relying on a known single old version, you'll need the benefits of "history patching." History patching allows you to update multiple old versions to a single new version. RTPatch is designed in a more efficient way to handle these updates, resulting in smaller patch files that are created in a fraction of the time that it takes to create the corresponding Windows Installer update.
- Patching files not installed with Windows Installer. You are not required to install files with Windows Installer in order to patch them with RTPatch. Additionally, RTPatch provides multiple smart file locating options to facilitate the silent location of these files on each end-user's machine.
- Patching complex systems. RTPatch provides over 100 commands that are uniquely tailored for the problems associated with updating software. Contrast this to the limited feature-set provided with Windows Installer patching, and it is obvious that RTPatch is much better suited to handle the needs of updating complex software distributions.
Q:
Is RTPatch different from patching provided by installation utilities such as InstallShield Developer 8 and Wise for Windows Installer 4, etc.?
A:
Yes. The patching in both InstallShield Developer 8 and Wise for Windows Installer 4 is Microsoft's Windows Installer patching. RTPatch is more advanced and offer many unique advantages to both the patch builder and the patch applier (end-users).
Q:
What are the key benefits of using RTPatch over the Windows Installer patching?
A:
RTPatch offers many improvements over Windows Installer patching. Just a few of these are noted below:
• Reduced Source Media Requirements. When attempting to apply a patch, Windows Installer based installations can drive end-users to distraction with incessant demands for "source media" that isn't needed and can't be located by the user. With RTPatch, your end-users don't need the "original media" unless absolutely required by the update (e.g., patching a damaged file, or patching a feature that was not originally installed). This unnecessary requirement is a problem in the core MSI technology, so the annoyance is present in all of the wrapper utilities (e.g., InstallShield Developer 8, Wise for Windows Installer 4, etc.). Though Microsoft's release of MSI 2.0 eased this problem somewhat, there are still many situations that were left unaddressed. Until now.
• Reliability. Since 1991, RTPatch has been used by the majority of the Fortune 1000 companies, as well as many local, state, and federal agencies. In that time, RTPatch has earned a reputation as an extremely reliable update system.
• Scalability. RTPatch is designed to work efficiently with any file type. Data files often grow quite large - RTPatch not only builds efficient patch files for these large files, but it also reliably applies those patch files on the target system.
• Developer Control. RTPatch is rich in update-specific features. With over 100 build commands, RTPatch offers a solution for just about every update need. From handling previously serialized files to retaining user-customized file security and attributes, the features of RTPatch have been designed for the special requirements of updating software, a process that is in many ways quite different from installing software.
• Integration. RTPatch's Windows Installer support features 100% integration with Microsoft's Windows Installer technology. Patch developers can now finally use the proven reliable RTPatch patch engine without sacrificing any integration with their installation tools.
• Performance. RTPatch outperforms Windows Installer patching in three important areas: build time, apply time, and patch file size. A huge disparity exists between RTPatch's efficient build time versus Windows Installer's build time. In many cases, RTPatch outperforms Windows Installer's build time by a factor of ten, or more. Historical patching, where multiple old versions may exist, also demonstrates an advantage for RTPatch. RTPatch's history patch architecture lends itself to more efficient (i.e., smaller) patch files in the general case.
• Usability. Windows Installer patching relies on external tools to make it useable. Developers have the option of editing the patch configuration files directly; however, doing so is time intensive and prone to error. The various wrapper tools that provide "patch wizards" allow developers to quickly create patch packages, but developers sacrifice customization options, do not have access to much of the limited set of Windows Installer features, and are forced to accept a "one-size-fits-all" update mentality. Unlike WI, RTPatch offers convenient build options, including a graphical wizard interface, with access to over 30 build commands. A flexible command file format is also available allowing developers to tap into the complete 100+ build commands that may be used to customize the update process. Seminars and week-long workshops on how to use RTPatch are unnecessary.
• The Right Tool. RTPatch is designed to provide software upgrade and update solutions. By focusing on the special needs of updating software, RTPatch offers direct solutions to your update problems. Windows Installer is installation software, with a patching component. Using installation tools to upgrade your software negatively impacts your time to market, update reliability, end-user experience, and overall customer satisfaction. RTPatch is simply the right tool for the job.
• Support. Unlike many software companies, support questions posed by customers and evaluators are fielded by qualified software engineers, not recordings or screeners. We understand the value of your time, so phone inquiries are usually connected immediately. If an engineer is not immediately available, we'll call you back - usually within an hour - so that you don't waste any of your time waiting on the phone. Of course, promptness does little good without quality of service, so our support engineers are all extremely knowledgeable with RTPatch as well as the special needs of updating software. Almost all support requests (phone and email) are resolved by first level support personnel.
Q:
Does RTPatch also support patching file installed with non-Windows Installer installations?
A:
Yes
Q:
Are future enhancements for patching non-Windows Installer installations in the works?
A:
Yes. Pocket Soft continues to innovate in the patching space and will support, and add value to, all future Windows releases.
|