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