WiX:比较版本"7.x.x.x"和"10.x.x.x"



我有一个WiX文件,我必须在其中进行版本比较以检查先决条件。表达式如下所示:

<Publish (attributes...)>
    <![CDATA[(VERSION<"7.0") OR (other expressions)]]>
</Publish>

到目前为止,这工作正常,因为主要版本号变为 7 到 8 到 9。我们现在正在迁移到版本 10,字符串比较失败,因为"1"小于"7"。我想"10.0"<"7.0"计算false因为我打算比较版本,但由于正在发生的字符串比较,表达式的计算结果为 true

我已经检查了几个 StackOverflow 答案以及 WiX 文档,但似乎缺少版本比较操作。

理想情况下,在编程语言中,如果没有版本解析机制,我会按.拆分字符串并将字符串转换为整数并比较相应的条目。

我可以使用什么方法进行WiX?

MSI SDK :是的,正如MSI SDK所述:" Note that the installer will not do direct comparisons of the Version data type in conditional statements。例如,不能使用比较运算符来比较条件语句中的"01.10"和"1.010"等版本。而是使用有效的方法搜索版本,如搜索现有应用程序、文件、注册表项或.ini文件条目中所述,然后设置属性。

问题仍然存在,搜索和设置属性是否适合您。您还可以使用自定义操作并以更灵活的方式检查系统 - 如果您确实需要的话。

您究竟在该发布元素中执行了什么操作?