wix传递选项到msi进行修复

时间:2013-03-13 19:12:32

标签: wix install windows-installer burn

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

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

我有什么办法可以确认,拒绝或修改这种行为吗?

1 个答案:

答案 0 :(得分:2)

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

Burn日志文件应该说“规划操作:操作”,这将告诉您它正在做什么。如果您正在执行修复操作,并且机器上的可执行文件版本不比MSI预期的版本高,则Burn的REINSTALLMODE应该可以正常工作。如果您正在执行“修复”,请在生成的MSI日志文件中查找相同的Burn执行,并查看组件对未修复的组件的状态。这应该可以帮助您回过头来查看组件未修复的原因。

从提供的日志文件中:

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

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