flyweight 修补在 Microsoft Windows 安装程序 3.0 中的说明

文章翻译 文章翻译
文章编号: 894439 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

简介

Microsoft Windows 安装程序 3.0 提供了也被称为 flyweight 修补程序的性能优化。flyweight 修补的目的是使更快地更新的应用程序通过删除不必要的操作的执行。例如对于 flyweight 修补模式主要用于只更新部分文件或某些注册表值的更新。Windows 安装程序 3.0 分析以确定是否优化是可能的特定更改的更新。是否可以优化是通过使用最少的处理设置应用更新。

描述 flyweight 修补优化

更新才有资格 flyweight 修补优化,如果通过适用的转换在 $ 更新中设置所做的更改对以下各表:
  • AdminExecuteSequence
  • AdminUISequence
  • 条件
  • CustomAction
  • 文件
  • FileSFPCatalog
  • InstallExecuteSequence
  • InstallUISequence
  • 媒体
  • MoveFile
  • MsiDigitalCertificate
  • MsiDigitalSignature
  • MsiFileHash
  • MsiPatchHeaders
  • 修补程序
  • PatchPackage
  • 属性
  • 注册表
  • SFPCatalog
  • 类型库
  • 验证
更新满足此条件时, 该日志文件中会记录以下消息:

Windows 安装程序将尝试以优化此修补程序,以在最充分 !


如果此更新所作的另一个表、 其他组件表或类的另一个表的修改更新是不符合条件 flyweight 修补优化。对另一个表的修改时,将日志文件中会记录以下消息:

Windows 安装程序将禁用此安装交易记录的修补程序优化
.

如果最近已启用安装交易记录的任何一种更新就不符合要求的 flyweight 修补优化,则会禁用 flyweight 修补优化。此外,Windows 安装程序 3.0 会自动禁用 flyweight 修补优化,当满足下列条件之一为真时:
  • 第一次安装应用程序。
  • 重建 属性设置为 一个REINSTALLMODE_FILEREPLACE 模式。
  • 更新应用程序会影响从源运行的功能。
  • 一个新应用的更新是重要的升级。这是对 产品代码 属性更改的更新。
在禁用 flyweight 修补优化时该日志文件中会记录以下消息之一:

消息 1

关闭修补程序优化。修补影响从源运行功能。


消息 2

由于主要的升级修补程序 {1BFBBCA7-3F15-16E8-016B-D3F9B331810A} 被激活为应用程序,请禁用修补程序优化。


注意您可能会收到一条消息,指出该性能优化已启用日志文件中。以后,您可能会收到一条消息,后续,指出该性能优化已禁用日志文件中。

运行标准的条件操作

当启用了 flyweight 修补模式只有最少以下设置的标准条件的操作运行:
  • AllocateRegistrySpace
  • AppSearch
  • CostFinalize
  • CostInitialize
  • DeleteServices
  • DisableRollback
  • DuplicateFiles
  • ExecuteAction
  • FileCost
  • FindRelatedProducts
  • ForceReboot
  • 安装
  • 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
其他 flyweight 修补优化
WriteRegistryValues
中包括注册表项。在过程中修补优化 flyweight,只有某些注册表项进行处理。处理的注册表项是由更新更新这些注册表项。检测基于实际对注册表表所做的修改。当注册表项会跳过的修补程序优化模式的 flyweight 由于时,该日志文件中会记录以下消息:

操作出"ProcessComponents"进行了优化。


了解可能的兼容性问题

flyweight 修补优化会导致可能的兼容性问题的更新。如果更新触发其他安装处理或 $ 如果更新需要处理都适用的转换设置进行更新以表示的更改之外的其他安装,则会出现兼容性问题。可能的兼容性问题:
  • 更新安装触发重新评估的可传递的组件。

    如果更新被检测为 flyweight,可传递的组件未正确处理。该方案包括一种可传递的组件,将从已禁用状态为启用状态,反之亦然。
  • 更新安装试图安装当前不存在的功能或当前不存在的组件。

    如果该组件中包括全局程序集更新应用程序启用 flyweight 修补优化模式时可能会实际失败。
  • 更新可以通过更改属性值在注册表表中引用的间接改变一个注册表项。

    例如对于如果该注册表值基于为"[MyCustomProperty],创作 MyCustomProperty 属性的值,并更新更改"[MyCustomProperty]"的值不会更新该注册表项。 因为注册表项不会出现在修改列表中,将发生此问题。

创作您的更新,以防止 flyweight 修补优化

重要此分区、 方法,或任务包含告诉您如何修改注册表的步骤。但是,如果注册表修改不当可能会出现严重问题。因此,请确保您仔细按照这些步骤。附加的保护注册表之前先备份您对其进行修改。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756如何备份和还原在 Windows 注册表


可以创作您更新,以防止 flyweight 修补优化,最简单的方法是在.msp 文件中添加一个新的自定义表有一个新行。新的自定义表与新行的存在会阻止 flyweight 修补模式。例如对于添加升级程序包,用来生成该更新中名为"CustomDisableflyweight"的新表。创作您的更新,以使表仅有一列。此列还可以作为主关键字列。当您希望禁用 flyweight 该更新的修补程序时现在,向表添加一个新行。

此外,系统管理员可以禁用 flyweight 通过设置
DisableflyweightPatching
修补的所有更新的优化子项在注册表中为 1 的 DWORD 值。此操作可以解决应用程序兼容性问题。

这些步骤,然后退出注册表编辑器:
  1. 单击 开始、 单击 运行,键入 regedit,然后单击 确定
  2. 找到并单击下面的项在注册表中:
    HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
  3. 编辑 菜单上指向 新建,然后单击 dword 值
  4. 键入 DisableFlyWeightPatching,然后按 ENTER 键。
  5. 编辑 菜单上单击 修改
  6. 键入 1,然后单击 确定

参考

有关 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

属性

文章编号: 894439 - 最后修改: 2007年1月16日 - 修订: 1.2
这篇文章中的信息适用于:
  • Microsoft Windows Installer 3.0
关键字:?
kbmt kbhowtomaster kbhowto kbinfo KB894439 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 894439
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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