wix将选项传递给msi进行维修 [英] wix pass option to msi for repair

查看:135
本文介绍了wix将选项传递给msi进行维修的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

When I repair using the msi, a registry entry is properly re-created. When using the exe generated by Burn, the entry is not-recreated, unless the exe associated with the reg entry also requires compare.

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

I wonder if, when burn invokes msi, if it is overriding the default /fm behavior of msiexec. That switch means "repair all required computer-specific registry entries "

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

Is there any way I can confirm, deny, or modify that behavior?

推荐答案

在Burn中计划修复"操作时,REINSTALLMODE是"cmuse".对于修改"操作,REINSTALLMODE为"cmuso".因此,在两种情况下都存在"m".

When planning a "Repair" operation in Burn the REINSTALLMODE is "cmuse". For a "Modify" operation the REINSTALLMODE is "cmuso". So "m" is present in both cases.

刻录日志文件应显示"Planning action: Action "(计划操作: Action ),这将告诉您它正在做什么.如果您正在执行修复操作,并且计算机上的可执行文件没有比MSI预期的更新的版本,则Burn的REINSTALLMODE应该可以工作.如果要执行修复",请在生成的MSI日志文件中查找相同的Burn执行,然后查看未修复的组件的组件状态是什么.这应该可以帮助您回溯以查看为什么未修复该组件.

The Burn log file should say, "Planning action: Action" and that will tell you which it is doing. If you are executing a Repair operation and there is not newer version of the executable on the machine than what your MSI expects, Burn's REINSTALLMODE should work. If you are doing a "Repair", look in the generated MSI log file for the same Burn execution and see what the Component states are for the Components that are not repaired. That should help you track back to see why the Component was not fixed.

从提供的日志文件中:

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()回调

The lack of REINSTALL=ALL shows that EnableFeatureSelection='yes'. Either remove that attribute (or change it to the default 'no') or your BA needs to handle the OnPlanMsiFeature() callback

这篇关于wix将选项传递给msi进行维修的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆