11

I have a 32bit WIX installer that installs a .NET based windows service. I need to use one external .dll that comes in 32bit and 64bit versions. Is there any way a 32bit installer can detect it's running on a 64bit machine? I want to then conditionally install the 32 or 64 bit .dll.

Crab Bucket
  • 6,219
  • 8
  • 38
  • 73
Andrew Jones
  • 285
  • 3
  • 11

3 Answers3

8

Extending Morten's answer, I did this in 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>
Smurf-IV
  • 91
  • 1
  • 3
4

Try this:

<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>
Morten Frederiksen
  • 5,114
  • 1
  • 40
  • 72
-1

Create a property with ProcessorArchitecture and get the value of this from registry. Based on this property create a CONDITIONAL FEATURE.

  • 3
    This answer is quite vague and is missing a lot of details. Would you care to expand it? – Marek Feb 03 '12 at 09:27