Microsoft Windows ???????? 3.0 ??? patching flyweight ?? ?????

???? ?????? ???? ??????
???? ID: 894439 - ?? ???????? ?? ?????? ??? ?? ?? ???? ???? ???? ??.
??? ?? ??????? ???? | ??? ?? ??????? ????

?? ????? ??

?????

Microsoft Windows ???????? 3.0 flyweight patching ?? ???? ?? ?? ??????????? ??????? ???????? ???? ??? ????? ?????? ??????????? ?? ??? ???????? ???????? ?? ???????? ?? ????? ?? ????? ???? ?? ??? flyweight patching ?? ???????? ??? ?????? ?? ???, flyweight patching ??? ???? ??? ??????? ?? ??? ????????? ??? ?????? ???????? ?? ??? ??????? ??????? ??? Windows ???????? 3.0 analyzes ???????????? ???? ?? ?? ???? ?? ????????? ???? ?? ??? ??????? ???????? ?? ??? ?????? ??? ??? ???????????? ???? ??, ?? ?????? ?? ????????? ?? ??????? ??? ?? ????? ?? ???? ???

??????? patching flyweight ?? ?????

??? ?????? ???? ????? ???????? ??? ?????? ???? ????????? ?? ?????? ??? ?? ???????? ??? ??? ??? ???????????? ?? patching flyweight ?? ??? ????? ??:
  • AdminExecuteSequence
  • AdminUISequence
  • ??????
  • CustomAction
  • ????
  • FileSFPCatalog
  • InstallExecuteSequence
  • InstallUISequence
  • ??????
  • MoveFile
  • MsiDigitalCertificate
  • MsiDigitalSignature
  • MsiFileHash
  • MsiPatchHeaders
  • ???
  • PatchPackage
  • ???
  • ?????????
  • SFPCatalog
  • TypeLib
  • ???????
?? ???? ?????? ?? ?? ?????? ?? ??? ???? ??, ?? ????? ????? ??? ????? ??? ??? ?? ??:

?? ??? fullest ???? ?? ??? ????????? ???? ?? ??? Windows ???????? ?? ?? ?????? ?????!


??? ?????? ?? ???? ?????? ?? ???? ???? ??????, ???? ??? ??????, ?? ???? ???? ???? ?? ?????? ????? ??, ?? ?????? flyweight ???????????? patching ?? ??? ????? ???? ??? ?? ???? ?????? ?? ???? ???? ?????? ?? ??? ???? ??, ????? ????? ??? ????? ??? ??? ?? ??:

Windows ???????? ?? ??????? ????????? ?? ??? ??? ???????????? ????? ??
.

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:
  • An application is installed for the first time.
  • TheREINSTALLMODE??? ??? ???? ?? ??? ??????????REINSTALLMODE_FILEREPLACEmode.
  • The update application affects run-from-source features.
  • One of the newly applied updates is a major upgrade. This is an update that changes theProductCode????
When flyweight patching optimization is disabled, one of the following messages is logged in the log file:

Message 1

Turning off patch optimization. Patching affects run-from-source features.


Message 2

Disabling patch optimizations since major upgrade patch '{1BFBBCA7-3F15-16E8-016B-D3F9B331810A}' is activated for application.


???: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 actions

When you enable flyweight patching mode, only the following minimal set of standard conditional actions run:
  • AllocateRegistrySpace
  • AppSearch
  • CostFinalize
  • CostInitialize
  • DeleteServices
  • DisableRollback
  • DuplicateFiles
  • ExecuteAction
  • FileCost
  • FindRelatedProducts
  • ForceReboot
  • INSTALL
  • InstallAdminPackage
  • InstallExecute
  • InstallExecuteAgain
  • InstallFiles
  • InstallFinalize
  • InstallInitialize
  • InstallODBC
  • InstallServices
  • InstallValidate
  • IsolateComponents
  • LaunchConditions
  • MsiPublishAssemblies
  • MsiUnpublishAssemblies
  • PatchFiles
  • PublishProduct
  • RegisterComPlus
  • RegisterFonts
  • RegisterProduct
  • RegisterTypeLibraries
  • RemoveDuplicateFiles
  • RemoveODBC
  • ResolveSource
  • ScheduleReboot
  • SelfRegModules
  • SelfUnregModules
  • SetODBCFolders
  • StartServices
  • StopServices
  • UnregisterComPlus
  • UnregisterFonts
  • UnregisterTypeLibraries
  • ValidateProductID
  • WriteRegistryValues
Additional flyweight patching optimizations are included in the
WriteRegistryValues
registry 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:

Action "ProcessComponents" is optimized out.


Understand possible compatibility issues

Flyweight 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:
  • The update installation triggers re-evaluation of a transitive component.

    If the update is detected as flyweight, the transitive component is not correctly handled. The scenario includes a transitive component that moves from the disabled state to the enabled state and vice versa.
  • The update installation tries to install a currently absent feature or a currently absent component.

    If the component includes global assemblies, the update application can actually fail when flyweight patching optimization mode is enabled.
  • The update indirectly alters a registry entry by changing a property value that is referenced in the Registry table.

    For example, if the registry value is based on the value of theMyCustomPropertyproperty that is authored as "[MyCustomProperty]," and the update changes the value of "[MyCustomProperty]," the registry entry is not updated. This issue occurs because the registry entry does not appear in the modifications list.

Author your update to prevent flyweight patching optimization

???????????? ???, ????, ?? ????? ?? ????????? ?? ??????? ???? ?? ??? ????? ????? ??? ???? ???????, ??? ?? ????????? ?? ??? ??? ?? ??????? ???? ??? ?? ????? ???????? ??????? ?? ???? ???.. ?????, ????????? ???? ?? ?? ?? ????? ?? ??????????? ???? ???? ???.. ?????? ??????? ?? ???, ????????? ?? ??????? ???? ?? ???? ???? ??? ?? ???.. ???, ??? ??? ?????? ??????? ???? ?? ?? ?? ????????? ?? ???????????? ?? ???? ???.. ????????? ?? ??? ?? ???? ?? ???????????? ???? ?? ????? ?? ???? ??? ???? ??????? ?? ???, Microsoft ?????? ??? ??? ???? ????? ?? ??? ????? ???? ?????? ????? ????::
322756??? ?? ???? ?? 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
DisableflyweightPatching
subkey in the registry DWORD value to 1. This action resolves application compatibility issues.

????? ????? ?? ???? ????, ?? ???? ??? ????????? ?????? ?? ???? ??????::
  1. ????? ????,???????????? ????,?????, typeregedit?? ????-????? ????, ?? ???? ???OK.
  2. ?????? ?????, ?? ???? ??? ????????? ??? ????? ????? ????? ????::
    HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
  3. ????? ?????????????? ??,????? ????-????? ????, ?? ???? ???DWORD.
  4. ??????:DisableFlyWeightPatching???? ????, ?? ???? ??? ENTER ?????..
  5. ????? ?????????????? ??,??????? ????.
  6. ??????:1?? ????-????? ????, ?? ???? ???OK.

??????

Windows ???????? 3.0 ?? ???? ??? ???? ??????? ?? ??? ????? Microsoft ?????? ??????? (MSDN) ??? ?????? ?? ????:

DisableFlyWeightPatching
HTTP://msdn2.Microsoft.com/en-us/library/aa368300.aspx
??? ????????????
HTTP://msdn2.Microsoft.com/en-us/library/aa370595.aspx
Windows ???????? 3.0 ?????? ??
HTTP://go.Microsoft.com/fwlink/?LinkId=33342

???

???? ID: 894439 - ????? ???????: 05 ?????? 2010 - ??????: 2.0
???? ???? ???? ??:
  • Microsoft Windows Installer 3.0
??????: 
kbhowtomaster kbhowto kbinfo kbmt KB894439 KbMthi
???? ?????? ????????
??????????: ?? ???? ?? ???? ??????? ?? ????? ?? Microsoft ????-?????? ?????????? ?????? ?????? ???? ??? ??. Microsoft ???? ??? ????-???????? ?? ????-???????? ????? ?????? ?? ???? ???????? ???? ?? ???? ????? ????? ??? ?? ??? ?????? ?? ???? ???? ???? ??? ????? ??. ???????, ????-???????? ???? ????? ???? ???? ???? ???. ?????, ????????, ?????-???? ?? ??????? ?? ???????? ?? ???? ???, ???? ?? ??? ?????? ???? ???? ??? ????? ??? ?? ???? ??. Microsoft ??????? ??? ???? ?? ?????? ?? ??????????, ????????? ?? ??? ?????? ?? ???? ????? ?? ???? ???????? ?? ??? ???? ????? ?? ??? ????????? ???? ??. Microsoft ????-?????? ?????????? ?? ????? ?????? ?? ?? ??? ??.
?????????? ?? ??????? ????????? ??????? ??:894439

??????????? ???

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com