安静模式下msiexec的条件?

时间:2013-09-17 00:20:24

标签: installer windows-installer installation

我有一个弹出对话框的自定义操作。如果我的安装程序以安静模式运行(即msiexec中的/ q),我想使用条件属性来禁止自定义操作。你是怎么做到的?

我知道我可以使用一个属性:

msiexec / i .msi / qn SUPPRESS_MY_CUSTOM_ACTION = 1

然后

使用条件属性:

NOT SUPPRESS_MY_CUSTOM_ACTION

但是,能够知道我是否处于安静模式会更好。

2 个答案:

答案 0 :(得分:1)

执行序列中安排的自定义操作应该很少有UI。一个罕见的例外是中止,重试,失败类型对话框,其中重试可能导致安装成功。自定义操作应检查内置UILevel property以确定是否适合显示UI。

您可能不希望完全禁止自定义操作,因为某些默认假设可能在没有UI的情况下完成。否则,您可能还需要考虑将自定义操作分解为UI序列和执行序列。

答案 1 :(得分:1)

同意克里斯托弗所说的话。但除了能够调节UILevel(在动作的条件下或在动作的代码本身内部工作)之外,还有另一种方法。更改您将UI设置为直接调用MessageBox之类的内容,而不是调用MsiProcessMessage(例如INSTALLMESSAGE_USER)以使Windows Installer显示消息框。它将在内部处理相同的检查UILevel,但请注意,其他方法不适用于控制事件。