在查看了这个网站上的很多帖子后,我最终决定把我的帖子放上来。
我正在使用 Wix 准备 MSI 文件。
在安装系统之前,我需要检查是否安装了特定版本的企业产品。我有该产品的 GUID(所有版本都相同),但我需要检查是否安装了 1.10.0 版本。
有什么想法吗?
提前致谢。
PD:我是 Wix 的新手,所以目前我只是使用安装项目默认创建的 wxs 文件。
澄清:我不想升级正在安装的软件,我需要检查我的安装程序所依赖的另一个程序和版本。
为了正确执行此操作,您可能需要使用自定义操作。在自定义操作中,使用微星获取产品信息 http://msdn.microsoft.com/en-us/library/aa370130%28v=vs.85%29.aspx功能。
在 pure-WiX 中执行此操作的一种方法是修改此处的示例:如何比较 WiX 中的注册表版本? https://stackoverflow.com/questions/7245152/how-do-i-compare-registry-versions-in-wix
首先创建一个RegistrySearch元素:
<Property Id="PRODUCTVERSION">
<RegistrySearch Id="ProductVersionSearch" Root="HKLM" Key="software\Microsoft\Windows\Current Version\Uninstall\[PRODUCTCODE]" Name="DisplayVersion" Type="raw" />
</Property>
然后使用 Condition 元素:
<Condition Message="Product version 1.10.0 must be installed">
<![CDATA[PRODUCTVERSION AND PRODUCTVERSION = "1.10.0"]]>
</Condition>
这将精确搜索版本 1.10.0,因此如果您正在寻找“v1.10.0 或更高版本”之类的内容,可能不是您想要的...但应该可以帮助您开始。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)