维克斯:比较版本“7.xxx”和“10.xxx”(WiX: Compare version “7.x

2019-09-26 06:21发布

我有一个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的?

Answer 1:

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文件条目 ,然后设置属性“。

现在的问题是,如果搜索和设置属性对你是一个可行的办法。 您还可以使用自定义操作,检查系统中更灵活的方式 - 如果你真的需要。

究竟是什么,你在发表元素在做什么?



文章来源: WiX: Compare version “7.x.x.x” and “10.x.x.x”