|
|
1
5
您描述的是默认值。如果自定义操作失败,安装将中止,之后只能执行回滚操作。因此,为了让你的问题有意义,首先你必须忽略或掩盖第一个自定义操作的失败。 MsiDoAction (或其包装物)。这样做会模糊自定义操作之间的界限,所以我假设这不是您描述的场景。 这就剩下了第三种也是最后一种方法:找到一个外部沟通渠道。为了立即采取行动,我建议ca1在成功时设置一个属性(调用 MsiSetProperty 或类似DTF会话的包装器[ ]),ca2或读取( MsiGetProperty / MsiEvaluateCondition )或者直接以该财产的价值为条件。对于延迟操作,属性不会传播,因此您必须识别其他一些通道。(可能提前选择路径的临时文件会起作用。)
|
|
2
2
决不能使用即时模式自定义操作更改系统 另一个“ 外部通信通道 “Michael Urman提到的自定义操作之间可能是HKLM中的一个注册表项,您可以编写该注册表项,然后将其读回。 然而,真正的解决方案是尝试WiX的内置防火墙功能 http://wixtoolset.org/documentation/manual/v3/xsd/firewall/firewallexception.html |
|
|
3
1
来自WiX文档 here
让您在FooAction1中的代码设置属性MsiSetProperty('FOOACTION1SUCCESS',1') |
|
|
4
0
让第一个自定义操作设置属性。然后,仅当该属性存在或设置为预期值时,才运行第二个自定义操作。 |