Select the product you need help with
- Internet Explorer
- Windows Phone
- More products
Description of flyweight patching in Microsoft Windows Installer 3.0
Article ID: 894439 - View products that this article applies to.
Microsoft Windows Installer 3.0 offers performance optimization that is also known as flyweight patching. The purpose of flyweight patching is to enable faster updating for applications by removing execution of unnecessary actions. For example, flyweight patching mode is primarily designed for updates that only update some files or some registry values. Windows Installer 3.0 analyzes the update for specific changes to determine whether optimization is possible. If optimization is possible, the update is applied by using a minimal processing set.
Describe flyweight patching optimizationAn update is only eligible for flyweight patching optimization if the changes that are made by the applicable transform set in the update are made to the following tables:
If the update makes a modification to another table, another Component table, or another Class table, the update is not eligible for flyweight patching optimization. When a modification to another table occurs, the following message is logged in the log file:
Flyweight patching optimization is disabled if any one of the updates that is recently enabled for the installation transaction is ineligible for flyweight patching optimization. Additionally, Windows Installer 3.0 automatically disables flyweight patching optimization when any one of the following conditions is true:
Note You may receive a message in the log file that states that performance optimization is enabled. Later, you may receive a subsequent message in the log file that states that performance optimization is disabled.
Run standard conditional actionsWhen you enable flyweight patching mode, only the following minimal set of standard conditional actions run:
WriteRegistryValuesregistry entry. During flyweight patching optimization, only certain registry entries are processed. The registry entries that are processed are those registry entries that are updated by the update. The detection is based on actual modifications that are made to the Registry table. When registry entries are skipped because of flyweight patching optimization mode, the following message is logged in the log file:
Understand possible compatibility issuesFlyweight patching optimization can cause possible compatibility issues for an update. The compatibility issues can occur if the update triggers additional installation processing or if the update requires additional installation processing outside the changes that are indicated in the applicable transform set for the update. The possible compatibility issues follow:
Author your update to prevent flyweight patching optimizationImportant This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
(http://support.microsoft.com/kb/322756/ )How to back up and restore the registry in Windows
The easiest way that you can author your updates to prevent flyweight patching optimization is to add a new custom table with a new row in the .msp file. The presence of the new custom table with the new row prevents flyweight patching mode. For example, add a new table that is named "CustomDisableflyweight" in the upgrade package that is used to build the update. Author your update so that the table only has one column. This one column also serves as the primary key column. Now, add a new row to the table when you want to disable flyweight patching for that update.
Additionally, system administrators can disable flyweight patching optimization for all updates by setting the
DisableflyweightPatchingsubkey in the registry DWORD value to 1. This action resolves application compatibility issues.
Follow these steps, and then quit Registry Editor:
For more information about Windows Installer 3.0, visit the following Microsoft Developer Network (MSDN) Web sites:
http://msdn2.microsoft.com/en-us/library/aa370595.aspxWindows Installer 3.0 is available