Ecco cosa ho fatto in un precedente progetto, che richiederà l'edizione manuale dei file .csproj. Hai anche bisogno di directory separate per i diversi binari, idealmente fratelli l'uno dell'altro e con lo stesso nome della piattaforma che stai prendendo di mira.
Dopo aver aggiunto i riferimenti di una singola piattaforma al progetto, apri .csproj in un editor di testo. Prima del primo <ItemGroup>
elemento all'interno <Project>
dell'elemento, aggiungi il seguente codice, che ti aiuterà a determinare su quale piattaforma stai eseguendo (e costruendo).
<!-- Properties group for Determining 64bit Architecture -->
<PropertyGroup>
<CurrentPlatform>x86</CurrentPlatform>
<CurrentPlatform Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64' or '$(PROCESSOR_ARCHITEW6432)'=='AMD64'">AMD64</CurrentPlatform>
</PropertyGroup>
Quindi, per i riferimenti specifici della tua piattaforma, apporti modifiche come le seguenti:
<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>
Nota l'uso della $(CurrentPlatform)
proprietà, che abbiamo definito sopra. È possibile, invece, utilizzare condizionali per i quali assiemi includere per quale piattaforma. Potrebbe anche essere necessario:
- Sostituire
$(PROCESSOR_ARCHITEW6432)
e $(PROCESSOR_ARCHITECTURE)
con $(Platform)
considerare SOLO la piattaforma di destinazione dei progetti
- Modificare la logica di determinazione della piattaforma per essere appropriata alla macchina corrente, in modo da non creare / fare riferimento a un binario a 64 bit da eseguire su una piattaforma a 32 bit.
L'ho fatto scrivere originariamente per un Wiki interno al lavoro, tuttavia, l'ho modificato e pubblicato l' intero processo sul mio blog , se sei interessato alle istruzioni dettagliate dettagliate.