İşte önceki bir projede .csproj dosyalarının manuel baskısını gerektiren bir şey. Farklı ikili dosyalar için, ideal olarak birbirlerinin kardeşleri için ve hedeflediğiniz platformla aynı ada sahip ayrı dizinlere de ihtiyacınız var.
Projeye tek bir platformun referanslarını ekledikten sonra, .csproj dosyasını bir metin düzenleyicide açın. <ItemGroup>
Öğe içindeki ilk öğeden önce, <Project>
hangi platformda çalıştırdığınızı (ve oluşturduğunuzu) belirlemenize yardımcı olacak aşağıdaki kodu ekleyin.
<!-- Properties group for Determining 64bit Architecture -->
<PropertyGroup>
<CurrentPlatform>x86</CurrentPlatform>
<CurrentPlatform Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64' or '$(PROCESSOR_ARCHITEW6432)'=='AMD64'">AMD64</CurrentPlatform>
</PropertyGroup>
Ardından, platforma özel referanslarınız için aşağıdakiler gibi değişiklikler yaparsınız:
<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)
Yukarıda tanımladığımız mülkün kullanımına dikkat edin . Bunun yerine, hangi platform için hangi derlemelerin dahil edileceği için koşul ifadeleri kullanabilirsiniz. Ayrıca şunlara da ihtiyacınız olabilir:
- YALNIZCA projelerin hedef platformunu dikkate almak için
$(PROCESSOR_ARCHITEW6432)
ve $(PROCESSOR_ARCHITECTURE)
ile değiştirin$(Platform)
- Mevcut makineye uygun olması için platform belirleme mantığını değiştirin, böylece 32 bitlik bir platformda çalıştırmak için 64 bitlik bir ikili dosya oluşturmaz / referans vermezsiniz.
Bunu aslen işteki dahili bir Wiki için yazdım, ancak ayrıntılı adım adım talimatlarla ilgileniyorsanız, onu değiştirdim ve tüm süreci bloguma gönderdim .