重新安装功能或应用程序
Windows Installer 可以修复、替换和验证应用程序中包含的文件。 如果与任何功能关联的任何文件或注册表项缺失或损坏,则可能需要进行部分或完整的应用程序重新安装。
重新安装某个功能或应用程序时,所有属于该功能或应用程序的服务、环境变量和自定义操作也会重新安装。 请注意,这意味着在最初安装之后、重新安装之前对环境变量所做的所有更改都将丢失。
以下列表包含重新安装功能或产品的方法。 安装程序已自动完成前两种方法:
- 通过调用 MsiReinstallFeature 函数来修复、替换或验证文件。
- 通过调用 MsiReinstallProduct 函数来重新安装整个产品。
- 通过 Reinstall ControlEvent 使用安装程序 UI 控件按钮来重新安装、替换或验证文件。
- 通过设置 REINSTALL 属性和 REINSTALLMODE 属性从命令行重新安装、替换或验证文件。
有关重新安装功能或应用程序的详细信息,请参阅复原能力。
使用安装程序重新安装产品
使用安装程序重新安装功能
使用安装程序用户界面重新安装产品或功能
通过在 Control 表中添加一个条目,将按钮添加到指定的对话框。
将一个 ReinstallMode ControlEvent 添加到 ControlEvent 表,该事件中的 Dialog_ 和 Control_ 字段引用了在步骤 1 中创建的按钮控件。 在 Argument 字段中输入一个字符串,其中包含与所需重新安装模式对应的字母(此字段可接受的值与 REINSTALLMODE 属性接受的值相同)。 此事件的 Ordering 列中的值应为 1。
再次将一个引用相同按钮控件的 Reinstall ControlEvent 事件添加到 ControlEvent 表中。 此事件的 Argument 字段通常为 ALL,以强制重新安装所有功能,但你也可以在此字段中输入特定功能的名称。 此事件的 Ordering 列中的值应为 2。
再添加一个与相同按钮控件关联的事件,以实际启动重新安装。 这可以是一个 EndDialog 事件(带有 Return 参数)。 但更常见的情况是,此处会使用 NewDialog 事件跳转到“确定要重新安装吗?”确认对话框。 此事件的 Ordering 列中的值应为 3。
如果需要,可为单个对话框创建多个 REINSTALL 按钮,让用户能够选择执行的重新安装类型。 在这种情况下,需要按照前面的过程所述创建每个按钮,并为每个按钮指定不同的 ReinstallMode ControlEvent 参数。
安装特定的产品(以及该产品的部分或全部功能)后,可以在命令行中执行重新安装:
从命令行重新安装产品或功能
在命令提示符下指定 REINSTALL 属性。
在命令提示符下指定 REINSTALLMODE 属性。
指定这些属性后,用户便可以重新安装产品的任何或所有功能。 还可以指定重新安装类型。 例如,可以指定只重新安装那些完全缺失的文件,或者只替换损坏的文件(例如,校验和与实际文件内容不匹配的任何可执行文件)。