2014-01-06 75 views
0

我需要安裝一組基於操作系統版本的文件和另一組文件,如果有其他操作系統在那裏,我也寫了一個條件,但該條件無法正常工作。我想安裝一些基於操作系統版本的文件和另一組基於另一個操作系統版本的文件使用wix文件

<Component Id="actionBin_Win7" Guid="6b73cbe1-4017-48d7-9cdc-784517b2d7a9" DiskId="1"> 
    <Condition><![CDATA[(VersionNT >= 600)]]></Condition> 
    <File Id="file30" Name="AXINTE_2.DLL" LongName="AxInterop.MSTSCLib.dll" src="$(var.agentroot)\bin\AxInterop.MSTSCLib_Win7.dll" /> 
    <File Id="file31" Name="ZENRDP_2.EXE" LongName="ZENRdpClient.exe" src="$(var.agentroot)\bin\ZENRdpClient_Win7.exe" /> 
    <File Id="file32" Name="INTERO_2.DLL" LongName="Interop.MSTSCLib.dll" src="$(var.agentroot)\bin\Interop.MSTSCLib_Win7.dll" /> 
</Component> 
<Component Id="actionBin" Guid="7388F2C9-5CDD-49a8-80F7-7DF5829AE87E" DiskId="1"> 
    <Condition><![CDATA[(VersionNT < 600)]]></Condition> 
    <File Id="file10" Name="AXINTE_1.DLL" LongName="AxInterop.MSTSCLib.dll" src="$(var.agentroot)\bin\AxInterop.MSTSCLib.dll" /> 
    <File Id="file11" Name="msrdp.ocx" LongName="msrdp.ocx" SelfRegCost="1" src="$(var.agentroot)\bin\msrdp.ocx" /> 
    <File Id="file12" Name="ZENRDP_1.EXE" LongName="ZENRdpClient.exe" src="$(var.agentroot)\bin\ZENRdpClient.exe" /> 
    <File Id="file13" Name="INTERO_1.DLL" LongName="Interop.MSTSCLib.dll" src="$(var.agentroot)\bin\Interop.MSTSCLib.dll" /> 
    <File Id="file14" Name="shortcut.vbs" LongName="shortcut.vbs" src="$(var.agentroot)\bin\shortcut.vbs" /> 
</Component> 

特點:

<Feature Id="AllComponents" Title="AllComponents" Level="1"> 
    <ComponentRef Id="actionBin" /> 
    <ComponentRef Id="actionBin_Win7" /> 
</Feature> 

任何想法是怎麼回事錯在這裏?即使操作系統是Windows 7,MSI也需要我打算用於WinXP的文件...

在此先感謝。

回答

0

就我所知的WIX而言,CDATA用於ASCII比較,而不用於整數比較。

您可以使用自定義操作來比較操作系統版本,然後將true或false值賦予某個會話變量,然後可以在wxs文件中使用該會話變量。

相關問題