Mengonfigurasi proyek ke platform target

Visual Studio memungkinkan Anda menyiapkan build aplikasi untuk menargetkan platform yang berbeda (arsitektur prosesor), termasuk Arm64 dan platform lainnya. Anda tidak perlu menjalankan Visual Studio pada platform untuk membangun platform target tersebut. Untuk informasi selengkapnya tentang dukungan Arm64 di Visual Studio, lihat Visual Studio di perangkat yang didukung ARM. Untuk dukungan platform 64-bit untuk pengembangan .NET, lihat aplikasi 64-bit.

Catatan

Visual Studio 2022 berjalan sebagai aplikasi 64-bit. Ini benar-benar terpisah dari platform yang dapat Anda targetkan untuk proyek Anda di Visual Studio. Anda dapat menggunakan versi Visual Studio apa pun untuk menargetkan platform 32-bit dan 64-bit.

Visual Studio memungkinkan Anda menyiapkan build aplikasi untuk menargetkan platform yang berbeda (arsitektur prosesor), seperti x86 dan x64. Untuk dukungan platform 64-bit untuk pengembangan .NET, lihat aplikasi 64-bit.

Catatan

Visual Studio berjalan sebagai aplikasi 32-bit. Ini benar-benar terpisah dari platform yang dapat Anda targetkan untuk proyek Anda di Visual Studio. Anda dapat menggunakan versi Visual Studio apa pun untuk menargetkan platform 32-bit dan 64-bit.

Platform target dengan Configuration Manager

Configuration Manager menyediakan cara bagi Anda untuk dengan cepat menambahkan platform baru ke target dengan proyek Anda. Jika Anda memilih salah satu platform yang disertakan dengan Visual Studio, konfigurasi disiapkan untuk membangun proyek Anda untuk platform yang dipilih.

Untuk menargetkan beberapa platform dalam proyek C++ asli, Anda perlu menginstal alat build untuk platform. Alat build C++ untuk platform x86, dan x64 diinstal dengan beban kerja C++ default. Jika Anda menargetkan arsitektur prosesor lain, seperti Arm64, Anda perlu menggunakan Alat Penginstal Visual Studio untuk menginstal alat build untuk platform sebelum melanjutkan. Lihat Ubah Visual Studio. Anda tidak perlu menjalankan Visual Studio pada perangkat Arm64 untuk menargetkan Arm64. Untuk Arm64, Anda dapat menginstal alat build Arm64 atau alat build ARM64EC ; lihat Arm64 Visual Studio.

Untuk pengembangan .NET, .NET 6 atau yang lebih baru diperlukan untuk menargetkan platform Arm64. Lihat Dukungan .NET untuk macOS 11 dan Windows 11 untuk Arm64 dan x64.

Untuk mengonfigurasi proyek untuk menargetkan Arm64 dan platform lainnya

  1. Pada bilah menu, pilih Build>Configuration Manager.

  2. Dalam daftar Platform solusi aktif, pilih platform untuk ditargetkan solusi, lalu pilih tombol Tutup.

    1. Jika platform yang Anda inginkan tidak muncul di daftar Platform solusi aktif, pilih Baru. Setelah menginstal alat untuk platform tertentu, Anda akan dapat menambahkan solusi baru dan konfigurasi proyek yang menargetkan platform tersebut.

      Kotak dialog Platform Solusi Baru akan muncul.

    2. Di jenis atau pilih daftar platform baru, pilih platform yang diinginkan (arsitektur prosesor); misalnya, ARM64.

      Screenshot showing choosing a new platform.

      Catatan

      Jika Anda memberi konfigurasi Anda nama baru, Anda mungkin harus mengubah pengaturan di Perancang Proyek untuk menargetkan platform yang benar.

    3. Jika Anda ingin menyalin pengaturan dari konfigurasi platform saat ini, pilih pengaturan tersebut, lalu pilih tombol OK .

Screenshot showing the new solution platform and project platform

Untuk mengonfigurasi proyek untuk menargetkan platform yang berbeda

  1. Pada bilah menu, pilih Build>Configuration Manager.

  2. Dalam daftar Platform solusi aktif, pilih platform untuk ditargetkan solusi, lalu pilih tombol Tutup.

    1. Jika platform yang Anda inginkan tidak muncul di daftar Platform solusi aktif, pilih Baru. Setelah menginstal alat untuk platform tertentu, Anda akan dapat menambahkan solusi baru dan konfigurasi proyek yang menargetkan platform tersebut.

      Kotak dialog Platform Solusi Baru akan muncul.

    2. Di jenis atau pilih daftar platform baru, pilih platform yang diinginkan (arsitektur prosesor); misalnya, x64.

      Catatan

      Jika Anda memberi konfigurasi Anda nama baru, Anda mungkin harus mengubah pengaturan di Perancang Proyek untuk menargetkan platform yang benar.

    3. Jika Anda ingin menyalin pengaturan dari konfigurasi platform saat ini, pilih pengaturan tersebut, lalu pilih tombol OK .

Catatan

Nama platform Win32 digunakan untuk proyek C++, dan itu berarti x86. Visual Studio mempertimbangkan platform tingkat proyek dan platform tingkat solusi, dan platform proyek berasal dari sistem proyek khusus bahasa. Proyek C++ menggunakan Win32 dan x64, tetapi platform solusi menggunakan x86 dan x64. Saat Anda memilih x86 sebagai konfigurasi solusi, Visual Studio memilih platform Win32 untuk proyek C++. Untuk melihat pengaturan platform tingkat proyek dan platform tingkat solusi, buka Configuration Manager dan perhatikan dua pengaturan platform. Platform tingkat solusi ditampilkan di menu dropdown platform solusi Aktif, dan tabel menunjukkan platform tingkat proyek untuk setiap proyek. Screenshot showing solution platform and project platform

Platform target di UI Project Designer atau Project Properties

Perancang Proyek atau UI Properti Proyek juga menyediakan cara untuk menargetkan platform yang berbeda dengan proyek Anda. Jika memilih salah satu platform yang disertakan dalam daftar dalam kotak dialog Platform Solusi Baru tidak berfungsi untuk solusi Anda, Anda dapat membuat nama konfigurasi kustom dan memodifikasi pengaturan di Properti Proyek untuk menargetkan platform yang benar.

Melakukan tugas ini bervariasi berdasarkan bahasa pemrograman yang Anda gunakan. Lihat tautan berikut untuk informasi selengkapnya:

Mengedit file proyek secara manual

Terkadang, Anda perlu mengedit file proyek secara manual untuk beberapa konfigurasi kustom. Contohnya adalah ketika Anda memiliki kondisi yang tidak dapat ditentukan dalam IDE, seperti referensi yang berbeda untuk dua platform berbeda, atau rakitan yang harus didaftarkan untuk platform tertentu untuk mengeksposnya ke COM. Alat yang memproses file proyek adalah MSBuild.

Perhatian

Mengedit file proyek C++ yang Anda gunakan secara manual di Visual Studio tidak disarankan.

Pendaftaran COM

Jika Anda membangun rakitan .NET dan mengeksposnya ke COM, Visual Studio mendaftarkan assembly dengan arsitektur platform tertentu, karena ada lokasi registri yang berbeda untuk setiap arsitektur platform (misalnya, x86 dan x64). Jika rakitan Anda sudah menargetkan platform tertentu, maka itu digunakan, tetapi jika Anda mendaftarkan rakitan .NET yang dibuat untuk Any CPU, MSBuild default untuk mendaftarkannya untuk runtime MSBuild saat ini. Jika Anda membangun di Visual Studio, itu di x64 Visual Studio 2022 dan yang lebih baru, dan x86 di Visual Studio 2019 dan yang lebih lama. Jika Anda mengatur arsitektur platform menggunakan metode yang dijelaskan sebelumnya dalam artikel ini, atau menentukan yang berbeda PlatformTarget dalam file proyek, MSBuild akan menghormatinya saat mendaftar. Ada properti yang dapat Anda atur untuk mengambil alih perilaku ini, RegisterAssemblyMSBuildArchitecture. Anda dapat mengatur RegisterAssemblyMSBuildArchitecture ke arsitektur platform yang diinginkan (seperti x86 atau x64) dengan menambahkannya ke elemen tingkat PropertyGroup atas dalam file proyek.

Mereferensikan rakitan dan DLL x86 dan x64

Anda mungkin memiliki rakitan .NET atau DLL yang memiliki versi x86 dan x64. Untuk menyiapkan proyek Anda untuk menggunakan referensi ini, pertama-tama tambahkan referensi, lalu buka file proyek dan edit untuk menambahkan ItemGroup dengan kondisi yang mereferensikan konfigurasi, dan platform target. Misalnya, biner yang Anda rujuk adalah ClassLibrary1 dan ada jalur yang berbeda untuk konfigurasi Debug dan Rilis, serta versi x86 dan x64. Kemudian, gunakan empat ItemGroup elemen dengan semua kombinasi pengaturan, sebagai berikut:

<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>

Untuk informasi selengkapnya tentang file proyek, lihat Referensi skema file proyek MSBuild.