Visual Studio загружает нужные (x86 или x64) dll!
Я работаю над Visual Studio в x86. Я хотел бы построить свое приложение для x32 и x64. Но мне нужно использовать sqlite .net разъем, который имеет DLL для приложений x86 и другой DLL для приложений x64. Как настроить визуальную студию для загрузки ссылки, когда моя конфигурация x64, и другой, если моя конфигурация x86?
Спасибо, Ричард.
3 ответа
В вашем файле проекта в качестве ссылки используйте условное обозначение 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>
Этот более простой ответ, чем у Прита Сангхи, не вызовет предупреждения при загрузке проекта, и в обозревателе решений появится только условно принятая 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>
Вы также можете создать приложение для "Любого процессора" и динамически выбирать, какую DLL загружать.