2

当我使用 msi 进行修复时,会正确地重新创建一个注册表项。使用 Burn 生成的 exe 时,不会重新创建条目,除非与 reg 条目关联的 exe 也需要比较。

我想知道,当burn 调用msi 时,它是否覆盖了msiexec 的默认/fm 行为。该开关意味着“修复所有必需的计算机特定注册表项”

有什么方法可以确认、拒绝或修改该行为?

4

1 回答 1

2

在 Burn 中计划“修复”操作时,REINSTALLMODE是“cmuse”。对于“修改”操作,REINSTALLMODE是“cmuso”。所以“m”在这两种情况下都存在。

刻录日志文件应显示“计划行动:行动”,这将告诉您它在做什么。如果您正在执行修复操作,并且计算机上没有比您的 MSI 期望的更新版本的可执行文件,那么 BurnREINSTALLMODE应该可以工作。如果您正在执行“修复”,请查看生成的 MSI 日志文件以执行相同的刻录,并查看未修复组件的组件状态。这应该可以帮助您追溯组件未修复的原因。

从提供的日志文件中:

Command Line: ARPSYSTEMCOMPONENT=1 MSIFASTINSTALL=7 REINSTALLMODE=cmuse
REBOOT=ReallySuppress IGNOREDEPENDENCIES=ALL CURRENTDIRECTORY=C:\temp
CLIENTUILEVEL=3 MSICLIENTUSESEXTERNALUI=1

缺乏REINSTALL=ALL表明EnableFeatureSelection='yes'。删除该属性(或将其更改为默认的“否”)或您的 BA 需要处理OnPlanMsiFeature()回调

于 2013-03-13T19:41:57.310 回答