我想基于操作系统版本安装某些文件集,使用wix文件安装基于另一个操作系统版本的另一组文件

时间:2014-01-06 12:28:05

标签: 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的文件......

提前致谢。

1 个答案:

答案 0 :(得分:0)

据我所知WIX,CDATA用于ASCII比较,不用于整数比较。

您可以使用自定义操作来比较操作系统版本,然后将true或false值分配给某个会话变量,然后您可以在wxs文件中使用该会话变量。