Aqui está o que eu fiz em um projeto anterior, que exigirá a edição manual do (s) arquivo (s) .csproj. Você também precisa de diretórios separados para os binários diferentes, idealmente irmãos um do outro, e com o mesmo nome da plataforma que você está direcionando.
Depois de adicionar as referências de uma única plataforma ao projeto, abra o .csproj em um editor de texto. Antes do primeiro <ItemGroup>
elemento dentro do <Project>
elemento, adicione o código a seguir, que ajudará a determinar em qual plataforma você está executando (e construindo).
<!-- Properties group for Determining 64bit Architecture -->
<PropertyGroup>
<CurrentPlatform>x86</CurrentPlatform>
<CurrentPlatform Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64' or '$(PROCESSOR_ARCHITEW6432)'=='AMD64'">AMD64</CurrentPlatform>
</PropertyGroup>
Em seguida, para referências específicas da sua plataforma, faça alterações como as seguintes:
<ItemGroup>
<Reference Include="Leadtools, Version=16.5.0.0, Culture=neutral, PublicKeyToken=9cf889f53ea9b907, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Lib\Leadtools\$(CurrentPlatform)\Leadtools.dll</HintPath>
</Reference>
<Reference Include="Leadtools.Codecs, Version=16.5.0.0, Culture=neutral, PublicKeyToken=9cf889f53ea9b907, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Lib\Leadtools\$(CurrentPlatform)\Leadtools.Codecs.dll</HintPath>
</Reference>
<Reference Include="Leadtools.ImageProcessing.Core, Version=16.5.0.0, Culture=neutral, PublicKeyToken=9cf889f53ea9b907, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Lib\Leadtools\$(CurrentPlatform)\Leadtools.ImageProcessing.Core.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.Entity" />
<!-- Other project references -->
</ItemGroup>
Observe o uso da $(CurrentPlatform)
propriedade, que definimos acima. Em vez disso, você poderia usar condicionais para quais assemblies incluir para qual plataforma. Você também pode precisar de:
- Substitua o
$(PROCESSOR_ARCHITEW6432)
e $(PROCESSOR_ARCHITECTURE)
por $(Platform)
para considerar SOMENTE a plataforma de destino dos projetos
- Altere a lógica de determinação da plataforma para se adequar à máquina atual, para que você não construa / faça referência a um binário de 64 bits para executar em uma plataforma de 32 bits.
Eu escrevi isso originalmente para um Wiki interno no trabalho, no entanto, eu o modifiquei e publiquei o processo completo no meu blog , se você estiver interessado nas instruções detalhadas, passo a passo.