Projeleri hedef platformlara yapılandırma

Visual Studio, arm64 ve diğer platformlar dahil olmak üzere farklı platformları (işlemci mimarileri) hedeflemek için uygulama derlemelerinizi ayarlamanıza olanak tanır. Bu hedef platform için derleme yapmak için Visual Studio'yu bir platformda çalıştırmanız gerekmez. Visual Studio'daki Arm64 desteği hakkında daha fazla bilgi için bkz . ARM destekli cihazlarda Visual Studio. .NET geliştirme için 64 bit platform desteği için bkz . 64 bit uygulamalar.

Not

Visual Studio 2022, 64 bit uygulama olarak çalışır. Bu, Visual Studio'daki projeleriniz için hedefleyebileceğiniz platformlardan tamamen ayrıdır. Visual Studio'nun herhangi bir sürümünü kullanarak hem 32 bit hem de 64 bit platformları hedefleyebilirsiniz.

Visual Studio, x86 ve x64 gibi farklı platformları (işlemci mimarileri) hedeflemek için uygulama derlemelerinizi ayarlamanıza olanak tanır. .NET geliştirme için 64 bit platform desteği için bkz . 64 bit uygulamalar.

Not

Visual Studio 32 bit uygulama olarak çalışır. Bu, Visual Studio'daki projeleriniz için hedefleyebileceğiniz platformlardan tamamen ayrıdır. Visual Studio'nun herhangi bir sürümünü kullanarak hem 32 bit hem de 64 bit platformları hedefleyebilirsiniz.

Configuration Manager ile hedef platformlar

Configuration Manager, projenizi hedefleyecek yeni bir platformu hızla eklemeniz için bir yol sağlar. Visual Studio'ya dahil edilen platformlardan birini seçerseniz, seçilen platform için projenizi derlemek üzere bir yapılandırma ayarlanır.

Yerel bir C++ projesindeki bazı platformları hedeflemek için platform için derleme araçlarını yüklemeniz gerekir. x86 ve x64 platformları için C++ derleme araçları varsayılan C++ iş yüküyle yüklenir. Arm64 gibi başka bir işlemci mimarisini hedeflediyseniz devam etmeden önce platform için derleme araçlarını yüklemek için Visual Studio Yükleyicisi kullanmanız gerekir. Bkz. Visual Studio'yu değiştirme. Arm64'i hedeflemek için Visual Studio'yu bir Arm64 cihazında çalıştırmanız gerekmez. Arm64 için Arm64 derleme araçlarını veya ARM64EC derleme araçlarını yükleyebilirsiniz; bkz . Arm64 Visual Studio.

.NET geliştirmesi için Arm64 platformunu hedeflemek için .NET 6 veya üzeri gereklidir. Bkz . Arm64 ve x64 için macOS 11 ve Windows 11 için .NET Desteği.

Arm64 ve diğer platformları hedef alan bir proje yapılandırmak için

  1. Menü çubuğunda Yapılandırma Yöneticisi Oluştur'u>seçin.

  2. Etkin çözüm platformu listesinde, çözümün hedeflemesi için bir platform seçin ve ardından Kapat düğmesini seçin.

    1. İstediğiniz platform Etkin çözüm platformu listesinde görünmüyorsa Yeni'yi seçin. Belirli bir platform için araçları yükledikten sonra, bu platformu hedefleyen yeni çözümü ve proje yapılandırmalarını ekleyebilirsiniz.

      Yeni Çözüm Platformu iletişim kutusu görüntülenir.

    2. Tür veya yeni platform listesinde istediğiniz platformu (işlemci mimarisi) seçin; örneğin, ARM64.

      Screenshot showing choosing a new platform.

      Not

      Yapılandırmanıza yeni bir ad verirseniz, project Tasarım Aracı doğru platformu hedeflemek için ayarları değiştirmeniz gerekebilir.

    3. Ayarları geçerli bir platform yapılandırmasından kopyalamak istiyorsanız, seçin ve ardından Tamam düğmesini seçin.

Screenshot showing the new solution platform and project platform

Bir projeyi farklı bir platformu hedefecek şekilde yapılandırmak için

  1. Menü çubuğunda Yapılandırma Yöneticisi Oluştur'u>seçin.

  2. Etkin çözüm platformu listesinde, çözümün hedeflemesi için bir platform seçin ve ardından Kapat düğmesini seçin.

    1. İstediğiniz platform Etkin çözüm platformu listesinde görünmüyorsa Yeni'yi seçin. Belirli bir platform için araçları yükledikten sonra, bu platformu hedefleyen yeni çözümü ve proje yapılandırmalarını ekleyebilirsiniz.

      Yeni Çözüm Platformu iletişim kutusu görüntülenir.

    2. Tür veya yeni platform listesinde istediğiniz platformu (işlemci mimarisi) seçin; örneğin, x64.

      Not

      Yapılandırmanıza yeni bir ad verirseniz, project Tasarım Aracı doğru platformu hedeflemek için ayarları değiştirmeniz gerekebilir.

    3. Ayarları geçerli bir platform yapılandırmasından kopyalamak istiyorsanız, seçin ve ardından Tamam düğmesini seçin.

Not

Win32 platform adı C++ projeleri için kullanılır ve x86 anlamına gelir. Visual Studio hem proje düzeyindeki platformları hem de çözüm düzeyindeki platformları dikkate alır ve proje platformları dile özgü proje sistemlerinden gelir. C++ projeleri Win32 ve x64 kullanır, ancak çözüm platformları x86 ve x64 kullanır. Çözüm yapılandırması olarak x86'yı seçtiğinizde Visual Studio, C++ projeleri için Win32 platformunu seçer. Hem proje düzeyinde platform hem de çözüm düzeyinde platform ayarlarını görmek için Configuration Manager'ı açın ve iki platform ayarlarını not edin. Çözüm düzeyi platformu Etkin çözüm platformu açılan listesinde gösterilir ve tabloda her proje için proje düzeyinde platform gösterilir. Screenshot showing solution platform and project platform

Project Tasarım Aracı veya Proje Özellikleri kullanıcı arabiriminde hedef platformlar

Project Tasarım Aracı veya Proje Özellikleri kullanıcı arabirimi, projenizle farklı platformları hedeflemek için de bir yol sağlar. Yeni Çözüm Platformu iletişim kutusundaki listede yer alan platformlardan birini seçmek çözümünüzde işe yaramazsa, özel bir yapılandırma adı oluşturabilir ve Project Özellikleri'ndeki ayarları doğru platformu hedefleyerek değiştirebilirsiniz.

Bu görevin gerçekleştirilmesi, kullandığınız programlama diline göre değişir. Daha fazla bilgi için aşağıdaki bağlantılara bakın:

Proje dosyasını el ile düzenleme

Bazen, bazı özel yapılandırmalar için proje dosyasını el ile düzenlemeniz gerekir. IDE'de belirtilemeyen iki farklı platform için farklı bir başvuru veya COM'da kullanıma sunmak için belirli bir platform için kaydedilmesi gereken bir derleme gibi koşullarınız olması buna örnek olarak gösterilebilir. Proje dosyasını işleyen araç MSBuild'dir.

Dikkat

Visual Studio'da kullandığınız bir C++ proje dosyasını el ile düzenlemeniz önerilmez.

COM kaydı

Bir .NET derlemesi oluşturup COM'a gösteriyorsanız, her platform mimarisi için farklı kayıt defteri konumları (örneğin x86 ve x64) olduğundan Visual Studio derlemeyi belirli bir platform mimarisine kaydeder. Derlemeniz zaten belirli bir platformu hedef alıyorsa, bu kullanılır, ancak için Any CPUoluşturulmuş bir .NET derlemesi kaydediyorsanız, MSBuild varsayılan olarak bunu MSBuild'in geçerli çalışma zamanına kaydeder. Visual Studio'da derleme yapıyorsanız, bu x64 Visual Studio 2022 ve üzeri ile x86 Visual Studio 2019 ve önceki sürümlerde geçerlidir. Platform mimarisini bu makalede daha önce açıklanan yöntemleri kullanarak ayarlarsanız veya proje dosyasında farklı PlatformTarget bir değer belirtirseniz, MSBuild kayıt sırasında buna saygı gösterir. Bu davranışı geçersiz kılmak için ayarlayabileceğiniz bir özellik vardır: RegisterAssemblyMSBuildArchitecture. proje dosyasındaki üst düzey PropertyGroup bir öğeye ekleyerek istediğiniz platform mimarisine (veya x64gibix86) ayarlayabilirsinizRegisterAssemblyMSBuildArchitecture.

x86 ve x64 derlemelerine ve DLL'lerine başvurma

Hem x86 hem de x64 sürümlerine sahip bir .NET derlemeniz veya DLL'niz olabilir. Projenizi bu başvuruları kullanacak şekilde ayarlamak için önce başvuruyu ekleyin, ardından proje dosyasını açın ve hem yapılandırmaya hem de hedef platforma başvuran bir koşul eklemek ItemGroup üzere düzenleyin. Örneğin, başvurdığınız ikili dosyanın ClassLibrary1 olduğunu ve x86 ve x64 sürümlerinin yanı sıra Hata Ayıklama ve Sürüm yapılandırmaları için farklı yollar olduğunu varsayalım. Ardından, ayarların tüm bileşimleriyle birlikte aşağıdaki gibi dört ItemGroup öğe kullanın:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <Platforms>AnyCPU;x64;x86</Platforms>
  </PropertyGroup>

  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x64\Debug\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>

  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x64\Release\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>

  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x86\Debug\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>
  
  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x86\Release\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>
</Project>

Proje dosyası hakkında daha fazla bilgi için bkz . MSBuild proje dosyası şema başvurusu.