2011-08-30 14 views
8
私のWiXインストーラで

、私はで見つけることができるESRI ArcMapでのバージョンを確認したい:私はしたいWiXのレジストリバージョンを比較するにはどうすればよいですか?

<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

RegistrySearch要素によって返される値は、@Type属性値、およびレジストリ内のその値のデータ型に依存します。したがって、属性の値としてrawを指定した場合、得られる結果には特定の接頭辞が含まれている可能性が高くなります。たとえば、REG_BINARYの場合、接頭辞は#です。あなたは比較の操作でこれを考慮する必要があります。

特に文字列の比較では、部分文字列演算子supported by the MSI condition syntaxを使用します。それはARC10INSTALLEDプロパティで受け取った値のどこかであなたの値10.を特定する最善の方法のように見える、 '開始点'、 '終了点'、および '含む'をサポートします。

+2

'から始まる'は正確に働いたものです。ありがとう!そして私が使ったことを文書化するだけです:<![CDATA [ARC10INSTALLED AND ARC10INSTALLED << "10"]]> –

関連する問題