首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WIX MSI条件

WIX MSI条件
EN

Stack Overflow用户
提问于 2019-10-02 21:43:52
回答 1查看 334关注 0票数 1

在Zabbix Agent MSI中,当用户打开MSI时,有以下行:

代码语言:javascript
复制
<Condition Message="Please enter the name or IP address in the Zabbix server IP/DNS field !">NOT (NOT (Installed OR WIX_UPGRADE_DETECTED OR WIX_DOWNGRADE_DETECTED)) OR ((NOT (Installed OR WIX_UPGRADE_DETECTED OR WIX_DOWNGRADE_DETECTED)) AND ((UILevel<5 AND SERVER) OR UILevel=5))</Condition>

有人能解释一下其中的逻辑吗?当人们以一种更合理的方式重写条件时:

代码语言:javascript
复制
NOT (
    NOT (Installed OR WIX_UPGRADE_DETECTED OR WIX_DOWNGRADE_DETECTED)
) OR (
    (NOT (Installed OR WIX_UPGRADE_DETECTED OR WIX_DOWNGRADE_DETECTED))
    AND ((UILevel<5 AND SERVER) OR UILevel=5)
)

因此,如果为Installed=1,则由于双重NOT而满足条件(不应该是这样,因为只有在没有安装软件的情况下才会出现该消息,因此,MSI中存在错误)。double NOT没有任何意义。

或者对上面的情况有其他的解释?

EN

回答 1

Stack Overflow用户

发布于 2019-10-03 03:17:39

这完全由Windows Installer的条件语句语法控制

https://docs.microsoft.com/en-us/windows/win32/msi/conditional-statement-syntax

看起来你在尝试做自定义的UI工作,但我不知道所有这些与服务器名称IP地址有什么关系。

在这些场景中,我有一个自定义操作来实现业务规则检查(伸手接触服务器或验证FQDN/IP ),并将属性设置为1或0。然后,我使用互斥的控制事件(内部文本中包含条件的发布元素)来生成一个对话框来说明有问题,或者NewDialog向导循环的下一个对话框。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58202826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档