Inilah yang telah saya lakukan di proyek sebelumnya, yang akan membutuhkan edisi manual dari file .csproj. Anda juga memerlukan direktori terpisah untuk biner yang berbeda, idealnya saudara kandung satu sama lain, dan dengan nama yang sama dengan platform yang Anda targetkan.
Setelah menambahkan referensi platform tunggal ke proyek, buka .csproj di editor teks. Sebelum <ItemGroup>
elemen pertama dalam <Project>
elemen, tambahkan kode berikut, yang akan membantu menentukan platform mana yang Anda jalankan (dan bangun).
<!-- Properties group for Determining 64bit Architecture -->
<PropertyGroup>
<CurrentPlatform>x86</CurrentPlatform>
<CurrentPlatform Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64' or '$(PROCESSOR_ARCHITEW6432)'=='AMD64'">AMD64</CurrentPlatform>
</PropertyGroup>
Kemudian, untuk referensi khusus platform Anda, Anda membuat perubahan seperti berikut ini:
<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>
Perhatikan penggunaan $(CurrentPlatform)
properti, yang kami definisikan di atas. Sebagai gantinya, Anda dapat menggunakan kondisional untuk rakitan mana yang akan disertakan untuk platform mana. Anda juga mungkin perlu:
- Ganti
$(PROCESSOR_ARCHITEW6432)
dan $(PROCESSOR_ARCHITECTURE)
dengan$(Platform)
untuk mempertimbangkan HANYA platform target proyek
- Ubah logika penentuan platform agar sesuai dengan mesin saat ini, sehingga Anda tidak membuat / mereferensikan biner 64 bit untuk dieksekusi pada platform 32 bit.
Saya awalnya menulis ini untuk Wiki internal di tempat kerja, namun, saya telah memodifikasinya dan memposting proses lengkapnya ke blog saya , jika Anda tertarik dengan petunjuk langkah demi langkah yang terperinci.