Search code examples
.netvisual-studio64-bitsystem.data.sqlite

Visual Studio loading the right (x86 or x64) dll


I'm working on Visual Studio in an x86. I would like to build my application for both x32 and x64. But I need to use the sqlite .net connector which has a dll for x86 apps and another dll for x64 apps.

How do I configure my Visual Studio to load a reference when my configuration is x64 and another when my configuration is x86?


Solution

  • in your project file in reference use an MSBUILD conditional

    <Reference 
           Include="SomeAssembly86, Version=0.85.5.452, Culture=neutral, PublicKeyToken=41b332442f1101cc, processorArchitecture=MSIL"  
             Condition=" '$(Platform)' == 'AnyCPU' ">
          <SpecificVersion>False</SpecificVersion>
          <HintPath>..\..\Dependencies\SomeAssembly.dll</HintPath>
          <Private>False</Private>
        </Reference>
        <Reference 
             Include="SomeOtherAssembly, Version=0.85.5.999, Culture=neutral, PublicKeyToken=41b332442f1101cc, processorArchitecture=MSIL" 
             Condition=" '$(Platform)' == 'x64' ">
          <SpecificVersion>False</SpecificVersion>
          <HintPath>..\..\Dependencies\SomeOtherAssembly.dll</HintPath>
          <Private>False</Private>
        </Reference>