Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何比较WiX中的注册表版本?_Wix - Fatal编程技术网

如何比较WiX中的注册表版本?

如何比较WiX中的注册表版本?,wix,Wix,在我的wix安装程序中,我想检查ESRI ArcMap的版本,我可以通过以下方式找到: <Property Id="ARC10INSTALLED"> <RegistrySearch Id="Arc10Search" Root="HKLM" Key="SOFTWARE\ESRI\ArcGIS" Name="RealVersion" Type="raw" /> </Property> 我想从10开始,我试着用这个条件来实现它: <Conditi

在我的wix安装程序中,我想检查ESRI ArcMap的版本,我可以通过以下方式找到:

<Property Id="ARC10INSTALLED">
    <RegistrySearch Id="Arc10Search" Root="HKLM" Key="SOFTWARE\ESRI\ArcGIS" Name="RealVersion" Type="raw" />
</Property>

我想从10开始,我试着用这个条件来实现它:

<Condition Message="ArcGIS Desktop 10 or 10.1 must be installed"><![CDATA[ARC10INSTALLED AND ARC10INSTALLED >= "10.0.0"]]></Condition>
=“10.0.0”]>
但是这似乎不起作用,有什么建议吗?

元素返回的值取决于
@Type
属性值以及注册表中该值的数据类型。因此,如果您将
raw
指定为
Type
属性的值,那么您将得到的结果很可能包含某个前缀。例如,如果它是
REG_BINARY
,您将得到前缀为
#
的值。你应该在比较的操作中考虑这一点。< /P>
特别是对于字符串比较,我将使用子字符串运算符。它支持“以开头”、“以结尾”和“包含”,这看起来是识别您的值的最佳方法。在ARC10INSTALLED属性中收到的值中的某个地方。

使用“以开头”正是有效的方法。谢谢为了记录我使用的内容: