Подтвердить что ты не робот

Visual Studio загружает правильную (x86 или x64) dll!

Я работаю над визуальной студией в x86. Я хотел бы создать приложение для x32 и x64. Но мне нужно использовать sqlite.net-разъем, в котором есть dll для приложений x86 и еще одна dll для x64-приложений. Как настроить мою визуальную студию для загрузки ссылки, когда моя конфигурация x64, а другая, когда моя конфигурация - x86?

Спасибо, Ричард.

4b9b3361

Ответ 1

в вашем файле проекта в ссылке используйте условное обозначение MSBUILD

<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>

Ответ 2

Этот немного более простой ответ, чем Preet Sangha, не будет генерировать предупреждение при загрузке проекта, и только условно принятая dll появится в обозревателе решений. Итак, в целом, внешний вид чище, хотя и более тонкий. (Это было протестировано в Visual Studio 2010.)

<Reference Include="p4dn" Condition="$(Platform) == 'x86'">
  <HintPath>..\..\ThirdParty\P4.Net\clr4\x86\p4dn.dll</HintPath>
</Reference>
<Reference Include="p4dn" Condition="$(Platform) == 'x64'">
  <HintPath>..\..\ThirdParty\P4.Net\clr4\x64\p4dn.dll</HintPath>
</Reference>

Ответ 3

Вы также можете создать свое приложение для "Any CPU" и динамически выбирать, какую DLL загружать.