从32位WIX安装程序检测64位系统

时间:2011-09-19 19:52:30

标签: wix wix3.5

我有一个32位WIX安装程序,可以安装基于.NET的Windows服务。我需要使用一个32位和64位版本的外部.dll。 32位安装程序有没有办法检测到它在64位机器上运行?我想有条件地安装32位或64位.dll。

3 个答案:

答案 0 :(得分:4)

扩展Morten的答案,我在Wix 3.6中做到了这一点

     <Component Directory="INSTALLLOCATION">
        <File Id="msvcp100.dll_x64" Source="$(var.x64)\msvcp100.dll" KeyPath="yes" />
        <Condition><![CDATA[VersionNT64]]></Condition>
     </Component>
     <Component  Directory="INSTALLLOCATION">
        <File Id="msvcp100.dll_x86" Source="$(var.x86)\msvcp100.dll" KeyPath="yes" />
        <Condition><![CDATA[Not VersionNT64]]></Condition>
     </Component>

答案 1 :(得分:2)

试试这个:

<Component Id="Component1" Guid="*">
  <![CDATA[Not VersionNT64]]>
  <File Id="File1" Name="1.dll" Source="c:\dlls\1.dll"/>
</Component>
<Component Id="Component2" Guid="*">
  <![CDATA[VersionNT64]]>
  <File Id="File2" Name="2.dll" Source="c:\dlls\2.dll"/>
</Component>

答案 2 :(得分:-1)

使用ProcessorArchitecture创建一个属性,并从注册表中获取此值。基于此属性创建一个CONDITIONAL FEATURE。