Voici ce que j'ai fait dans un précédent projet, qui nécessitera l'édition manuelle de la .csproj fichier(s). Vous avez également besoin des répertoires distincts pour les différents fichiers binaires, idéalement frères et sœurs les uns des autres, et avec le même nom que la plate-forme cible.
Après l'ajout d'une plate-forme unique de références au projet, ouvrez le .csproj dans un éditeur de texte. Avant la première <ItemGroup>
élément à l'intérieur de l' <Project>
élément, ajoutez le code suivant, qui aidera à déterminer sur quelle plate-forme vous êtes en cours d'exécution (et la construction).
<!-- Properties group for Determining 64bit Architecture -->
<PropertyGroup>
<CurrentPlatform>x86</CurrentPlatform>
<CurrentPlatform Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64' or '$(PROCESSOR_ARCHITEW6432)'=='AMD64'">AMD64</CurrentPlatform>
</PropertyGroup>
Alors, pour votre plate-forme de références spécifiques, vous apportez des modifications telles que les suivantes:
<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>
Notez l'utilisation de l' $(CurrentPlatform)
de la propriété, nous l'avons défini ci-dessus. Vous pouvez, au lieu de cela, utiliser des conditions pour lesquelles les assemblages à inclure pour la plate-forme. Vous pourriez aussi vous devez soit:
- Remplacer l'
$(PROCESSOR_ARCHITEW6432)
et $(PROCESSOR_ARCHITECTURE)
avec $(Platform)
à ne considérer que la plate-forme cible des projets
- Modifier la plate-forme de la détermination de la logique afin d'être adaptée à la machine, de sorte que vous n'êtes pas la construction/le référencement d'un 64 bit binaire à exécuter sur un 32 bits plate-forme.
Je l'avais écrit à l'origine pour un Wiki interne au travail, mais, je l'ai modifié et publié le processus complet de mon blog, si vous êtes intéressé dans le détail, étape par étape les instructions.