在Zabbix代理MSI中,当打开MSI时有以下一行:
<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>
有人可以解释逻辑吗?当人们以更明智的方式重写条件时:
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中存在错误),因此满足条件。双NOT
没有任何意义。
或者对上述情况还有其他解释吗?
看来您正在尝试进行自定义UI工作,但我不知道所有这些都与服务器名称IP地址有什么关系。
在这些情况下,我有一个自定义操作,该操作实现业务规则检查(伸出并触摸服务器或验证FQDN / IP,并将属性设置为1或0。然后,我使用互斥的控制事件(在内部文本)来生成一个有问题的对话框,或者是NewDialog向导循环的下一个对话框。