Вот что я сделал в предыдущем проекте, для которого потребуется ручная редакция файла (ов) .csproj. Вам также понадобятся отдельные каталоги для разных двоичных файлов, в идеале - братьев и сестер друг друга, и с тем же именем, что и платформа, на которую вы нацеливаетесь.
После добавления в проект ссылок на одну платформу откройте .csproj в текстовом редакторе. Перед первым <ItemGroup>
элементом внутри <Project>
элемента добавьте следующий код, который поможет определить, на какой платформе вы работаете (и строите).
<!-- Properties group for Determining 64bit Architecture -->
<PropertyGroup>
<CurrentPlatform>x86</CurrentPlatform>
<CurrentPlatform Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64' or '$(PROCESSOR_ARCHITEW6432)'=='AMD64'">AMD64</CurrentPlatform>
</PropertyGroup>
Затем для ссылок на вашу платформу вы вносите следующие изменения:
<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>
Обратите внимание на использование $(CurrentPlatform)
свойства, которое мы определили выше. Вместо этого вы можете использовать условные выражения для того, какие сборки включать для какой платформы. Вам также может потребоваться:
- Замените
$(PROCESSOR_ARCHITEW6432)
и $(PROCESSOR_ARCHITECTURE)
на, $(Platform)
чтобы рассматривать ТОЛЬКО целевую платформу проектов.
- Измените логику определения платформы, чтобы она соответствовала текущей машине, чтобы вы не создавали / не ссылались на 64-битный двоичный файл для выполнения на 32-битной платформе.
Первоначально я написал это для внутренней Wiki на работе, однако я изменил его и опубликовал полный процесс в своем блоге , если вас интересуют подробные пошаговые инструкции.