Обнаружение 64-битной системы из 32-битной программы установки WIX - PullRequest
8 голосов
/ 19 сентября 2011

У меня есть 32-битный установщик WIX, который устанавливает службу Windows на основе .NET.Мне нужно использовать один внешний .dll, который поставляется в 32-битной и 64-битной версиях.Есть ли способ, как 32-битный установщик может обнаружить, что он работает на 64-битной машине?Затем я хочу условно установить 32- или 64-разрядную версию DLL.

Ответы [ 3 ]

4 голосов
/ 20 октября 2013

Расширяя ответ Мортена, я сделал это в 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>
2 голосов
/ 12 августа 2012

Попробуйте это:

<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>
0 голосов
/ 09 января 2012

Создайте свойство с помощью ProcessorArchitecture и получите его значение из реестра. На основании этого свойства создайте УСЛОВНЫЕ УСЛОВИЯ.

...