2022LogoCatatan Rilis Visual Studio 2022 versi 17.0


Tip

Tonton rekaman acara peluncuran Visual Studio 2022 untuk mempelajari tentang apa yang baru, mendengar tips & trik, dan mengunduh swag digital gratis.

Persyaratan | Sistem Peta Strategi | Komunitas | Pengembang Visual Studio 2022 Kompatibilitas | Persyaratan | Lisensi Riwayat | Rilis Kode | yang Dapat Didistribusikan Blog Rilis | Terbaru Masalah | Umum Apa yang Baru di Dokumen Visual Studio


Visual Studio 2022 versi 17.0

Dukungan untuk Visual Studio 2022 versi 17.0 berakhir pada Juli 2023, yang berarti tidak akan ada lagi pembaruan keamanan untuk versi ini. Pelanggan Perusahaan dan Profesional yang menggunakan saluran Visual Studio 2022 17.0 LTSC harus mengadopsi saluran Terbaru saat ini atau rilis LTSC.

Baca tentang rilis visual Studio 2022 dan tanggal dukungan.

Pelajari tentang Siklus Hidup dan Layanan Produk Visual Studio.

Kunjungi situs Visual Studio untuk mengakses tautan untuk versi terbaru produk Visual Studio 2022. Untuk petunjuk tentang menginstal dan memperbarui Visual Studio 2022, lihat Memperbarui Visual Studio 2022 ke rilis terbaru. Panduan Administrator Visual Studio berisi panduan tentang cara menyebarkan Visual Studio di seluruh organisasi Anda.

Rilis Visual Studio 2022 versi 17.0

Visual Studio 2022 Blog

Blog Visual Studio 2022 adalah sumber resmi wawasan produk dari Tim Teknik Visual Studio. Anda dapat menemukan informasi mendalam tentang rilis Visual Studio 2022 di postingan berikut:


17.0.23 Visual Studio 2022 versi 17.0.23

dirilis 11 Juli 2023

Masalah yang Ditangani dalam rilis 17.0.23 ini

  • Microsoft menyadari kerentanan di mana ada kemungkinan injeksi alamat SMTP yang dapat terjadi di kelas SmtpClient. Ini sesuai dengan CVE-2022-26893 (bukan CVE yang diterbitkan karena kerentanan dinilai sebagai sedang).

Saran Keamanan Ditangani

  • Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-33127 .NET Kerentanan ada dalam aplikasi .NET di mana server diagnostik dapat dieksploitasi untuk mencapai elevasi hak istimewa (EoP) lintas sesi/lintas pengguna dan eksekusi kode.
  • Kerentanan Fitur Keamanan CVE-2023-33170 .NET Melewati Kerentanan Kerentanan ada di aplikasi ASP.NET Core di mana upaya penguncian akun maksimum yang gagal mungkin tidak segera diperbarui, memungkinkan penyerang untuk mencoba lebih banyak kata sandi.

17.0.22 Visual Studio 2022 versi 17.0.22

dirilis 13 Juni 2023

Masalah yang Ditangani dalam rilis 17.0.22 ini

  • Microsoft menyadari kerentanan di mana ada kemungkinan injeksi alamat SMTP yang dapat terjadi di kelas SmtpClient. Ini sesuai dengan CVE-2022-26893 (bukan CVE yang diterbitkan karena kerentanan dinilai sebagai sedang).

Saran Keamanan Ditangani

  • CVE-2023-24897 Kerentanan Eksekusi Kode Jarak Jauh Visual Studio Pembaruan keamanan ini mengatasi kerentanan di MSDIA SDK di mana PDB yang rusak dapat menyebabkan timbunan luapan, yang menyebabkan crash atau eksekusi kode jarak jauh.
  • Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-25652 Visual Studio Pembaruan keamanan ini mengatasi kerentanan di mana input yang dibuat khusus untuk git apply –reject dapat menyebabkan penulisan konten terkontrol di lokasi sewenang-wenang.
  • CVE-2023-25815 Kerentanan Visual Studio Spoofing Pembaruan keamanan ini mengatasi kerentanan di mana pesan pelokalan Github mengacu pada jalur yang dikodekan secara permanen alih-alih menghormati awalan runtime yang mengarah ke penulisan memori yang tidak terikat dan crash.
  • Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-29007 Visual Studio Pembaruan keamanan ini mengatasi kerentanan di mana file konfigurasi yang berisi kesalahan logika menghasilkan injeksi konfigurasi arbitrer.
  • Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-29011 Kerentanan Pembaruan keamanan ini mengatasi kerentanan di mana Git untuk Windows yang dapat dieksekusi yang bertanggung jawab untuk menerapkan proksi SOCKS5 rentan mengambil konfigurasi yang tidak tepercaya pada komputer multi-pengguna.
  • Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-29012 Visual Studio Pembaruan keamanan ini mengatasi kerentanan di mana program Git untuk Windows Git CMD salah mencari program saat startup, yang mengarah ke eksekusi kode serempak senyap.
  • Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-27909 Visual Studio Pembaruan keamanan ini membahas Kerentanan Tulis Di Luar Batas di Autodesk® FBX® SDK di mana versi 2020 atau sebelumnya dapat menyebabkan eksekusi kode melalui file FBX yang dibuat secara berbahaya atau pengungkapan informasi.
  • Kerentanan Pengungkapan Informasi Visual Studio CVE-2023-27910 Kerentanan pembaruan keamanan ini mengatasi kerentanan di mana pengguna dapat ditipu untuk membuka file FBX berbahaya yang dapat mengeksploitasi kerentanan luapan buffer tumpukan di Autodesk® FBX® SDK 2020 atau sebelumnya yang dapat menyebabkan eksekusi kode jarak jauh.
  • Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-27911 Visual Studio Pembaruan keamanan ini mengatasi kerentanan di mana pengguna dapat ditipu untuk membuka file FBX berbahaya yang dapat mengeksploitasi kerentanan luapan buffer timbunan di Autodesk® FBX® SDK 2020 atau sebelumnya yang dapat menyebabkan eksekusi kode jarak jauh.
  • Kerentanan Pengungkapan Informasi Visual Studio CVE-2023-33139 Kerentanan Pembaruan keamanan ini mengatasi kerentanan OOB di mana pengurai file obj di Visual Studios mengarah ke pengungkapan informasi.
  • CVE-2023-29331 .NET dan Visual Studio Denial of Service Vulnerability Pembaruan keamanan ini mengatasi kerentanan di mana proses pengambilan AIA untuk sertifikat klien dapat menyebabkan penolakan layanan.
  • CVE-2023-24895 .NET dan Kerentanan Eksekusi Kode Jarak Jauh Visual Studio Pembaruan keamanan ini mengatasi kerentanan di pengurai WPF XAML di mana pengurai tanpa kotak dapat menyebabkan eksekusi kode jarak jauh.
  • CVE-2023-24936 .NET dan Visual Studio Elevation of Privilege Vulnerability Pembaruan keamanan ini mengatasi kerentanan dalam melewati pembatasan saat mendeserialisasi Himpunan Data atau DataTable dari XML, yang mengarah ke peningkatan hak istimewa.
  • CVE-2023-32032 .NET Elevasi Kerentanan Hak Istimewa Kerentanan ada di .NET menggunakan mengekstrak konten file Tar yang dapat mengakibatkan peningkatan hak istimewa.
  • Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-33126 .NET Kerentanan ada di .NET selama skenario crash dan pelacakan tumpukan yang dapat menyebabkan pemuatan bin arbitrer
  • Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-33128 .NET Kerentanan ada di generator sumber .NET untuk P/Pemanggilan yang dapat menyebabkan kode yang dihasilkan membebaskan memori yang tidak diinisialisasi dan crash.
  • Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-33135 .NET Kerentanan ada di .NET SDK selama pemulihan alat yang dapat menyebabkan peningkatan hak istimewa.

17.0.21 Visual Studio 2022 versi 17.0.21

dirilis 11 April 2023

Masalah yang ditangani dalam rilis 17.0.21 ini

  • Memperbaiki crash ketika input yang tidak valid dikirim ke driver yang digunakan selama pelatihan PGO untuk driver mode kernel.
  • Memperbaiki masalah di IIS Express yang dapat menyebabkan crash saat memperbarui data telemetri.
  • Microsoft menyadari kerentanan di mana ada kemungkinan injeksi alamat SMTP yang dapat terjadi di kelas SmtpClient. Ini sesuai dengan CVE-2022-26893 (bukan CVE yang diterbitkan karena kerentanan dinilai sebagai sedang).

Komunitas Pengembang

Saran Keamanan Ditangani


17.0.20 Visual Studio 2022 versi 17.0.20

dirilis 14 Maret 2023

Masalah yang Ditangani dalam rilis 17.0.20 ini

  • Microsoft menyadari kerentanan di mana ada kemungkinan injeksi alamat SMTP yang dapat terjadi di kelas SmtpClient. Ini sesuai dengan CVE-2022-26893 (bukan CVE yang diterbitkan karena kerentanan dinilai sebagai sedang).
  • Git 2.39 telah mengganti nama nilai untuk credential.helper dari "manager-core" menjadi "manager". Lihat https://aka.ms/gcm/rename untuk informasi lebih lanjut.
  • Pembaruan untuk paket mingit dan Git untuk Windows ke v2.39.2, yang membahas CVE-2023-22490

Saran Keamanan Ditangani


17.0.19 Visual Studio 2022 versi 17.0.19

dirilis 14 Februari 2023

Masalah yang Ditangani dalam rilis 17.0.19 ini

  • Memperbarui penerjemah CPython ke versi 3.9.13.
  • Pembaruan untuk paket mingit dan Git untuk Windows ke v2.39.1.1, yang membahas CVE-2022-41903

Saran Keamanan Ditangani

17.0.18 Visual Studio 2022 versi 17.0.18

dirilis 10 Januari 2023

Saran Keamanan Ditangani

  • CVE-2023-21538 .NET Penolakan Kerentanan Layanan Penolakan kerentanan layanan ada di .NET 6.0 di mana klien berbahaya dapat menyebabkan luapan tumpukan yang dapat mengakibatkan penolakan serangan layanan ketika penyerang mengirim permintaan yang tidak valid ke titik akhir yang terekspos.

17.0.17 Visual Studio 2022 versi 17.0.17

dirilis 13 Desember 2022

Saran Keamanan Ditangani

  • CVE-2022-41089 Eksekusi Kode Jarak Jauh Kerentanan eksekusi kode jarak jauh ada di .NET Core 3.1, .NET 6.0, dan .NET 7.0, di mana aktor jahat dapat menyebabkan pengguna menjalankan kode sewenang-wenang sebagai akibat dari mengurai file xps yang dibuat secara berbahaya.

17.0.16 Visual Studio 2022 versi 17.0.16

dirilis 8 November 2022

Masalah yang ditangani dalam rilis 17.0.16 ini

Saran Keamanan Ditangani


17.0.15 Visual Studio 2022 versi 17.0.15

dirilis 11 Oktober 2022

Masalah yang Ditangani dalam rilis 17.0.15 ini

  • Administrator akan dapat memperbarui Vs Installer pada komputer klien offline dari tata letak tanpa memperbarui VS.

Saran Keamanan Ditangani

  • CVE-2022-41032 .NET Elevasi Kerentanan Hak Istimewa Kerentanan ada di .NET 7.0.0-rc.1, Klien .NET 6.0, .NET Core 3.1, dan NuGet (NuGet.exe, NuGet.Commands, NuGet.CommandLine, NuGet.Protocol) di mana aktor jahat dapat menyebabkan pengguna menjalankan kode arbitrer.

17.0.14 Visual Studio 2022 versi 17.0.14

dirilis 13 September 2022

Masalah yang Ditangani dalam rilis 17.0.14 ini

Saran Keamanan Ditangani

CVE-2022-38013 .NET Penolakan Kerentanan Layanan Penolakan kerentanan layanan ada di ASP.NET Core 3.1 dan .NET 6.0 di mana klien berbahaya dapat menyebabkan luapan tumpukan yang dapat mengakibatkan penolakan serangan layanan ketika penyerang mengirim muatan khusus yang diurai selama pengikatan model.


17.0.13 Visual Studio 2022 versi 17.0.13

dirilis 9 Agustus 2022

Masalah yang Ditangani dalam rilis 17.0.13 ini

  • Mengatasi Kesalahan Git setelah pembaruan 17.1.4 - Umpan Balik Visual Studio menyediakan opsi untuk menandai repositori git sebagai aman melalui Visual Studio.
  • Memperbarui MinGit ke versi 2.37.1.1 untuk mengatasi CVE - CVE-2022-29187 (mitre.org), yang mengekspos pengguna ke kerentanan di mana menavigasi ke repositori yang mereka miliki tetapi pengguna lain dapat menulis untuk dapat dieksploitasi untuk menjalankan kode berbahaya.
  • Memperbarui Git untuk Windows ke v2.37.1.1 mengatasi CVE-2022-31012.

Saran Keamanan Ditangani


17.0.12 Visual Studio 2022 versi 17.0.12

dirilis 12 Juli 2022

Masalah yang Ditangani dalam rilis 17.0.12 ini

  • LibraryManager yang diperbarui untuk mengakomodasi perubahan pada CDNJS API
  • Memperbaiki bug di mana editor teks akan kosong saat membuka dokumen atau crash saat mengetik.

Saran Keamanan Ditangani

  • CVE-2022-24513 Elevasi kerentanan hak istimewa Potensi elevasi kerentanan hak istimewa ada ketika layanan pembaruan Microsoft Visual Studio secara tidak benar mengurai data konfigurasi lokal.

17.0.11 Visual Studio 2022 versi 17.0.11

dirilis 14 Juni 2022

Masalah yang ditangani dalam rilis 17.0.11 ini

  • Memperbarui Dev 16.11 C++ Toolset berdampingan ke versi 14.29.30145.00. Versi terbaru Dev 16.11 C++ Toolset berisi perbaikan bug penting, termasuk memperbaiki semua laporan cacat C++20 yang tersisa. Lihat catatan rilis 16.11.14 untuk informasi selengkapnya.

Dari Komunitas Pengembang

Saran Keamanan Ditangani

  • Kerentanan Pengungkapan Informasi CVE-2022-30184 .NET Kerentanan ada di .NET 6.0 dan .NET Core 3.1 dalam NuGet di mana kebocoran kredensial dapat terjadi.
  • CVE-2022-24513 Elevasi kerentanan hak istimewa Potensi elevasi kerentanan hak istimewa ada ketika layanan pembaruan Microsoft Visual Studio secara tidak benar mengurai data konfigurasi lokal.

17.0.10 Visual Studio 2022 versi 17.0.10

dirilis 10 Mei 2022

Masalah yang Ditangani dalam rilis 17.0.10 ini

  • Git yang diperbarui untuk versi Windows yang digunakan oleh Visual Studio dan komponen opsional yang dapat diinstal ke 2.36.0.1
  • Memperbaiki masalah dengan integrasi git, di mana jika menarik/menyinkronkan cabang yang telah berbeda, jendela output tidak akan menampilkan petunjuk yang dilokalkan tentang cara mengatasinya.
  • Memperbaiki masalah saat membuka repositori Git Visual Studio, jendela output menunjukkan "Satu atau beberapa kesalahan terjadi." alih-alih alasan mengapa kegagalan terjadi, dan cara mengatasinya.
  • Memperbarui garis besar webview2 di Daytona

Dari Komunitas Pengembang

Saran Keamanan Ditangani

[CVE-2022-29117 .NET Penolakan Kerentanan Layanan Kerentanan ada di .NET 6.0, .NET 5.0 dan .NET Core 3.1 di mana klien berbahaya dapat memanipulasi cookie dan menyebabkan Penolakan Layanan.

Kerentanan CVE-2022-23267 .NET Core Denial of Service Kerentanan ada di .NET 6.0, .NET 5.0 dan .NET Core 3.1 di mana klien berbahaya dapat menyebabkan Penolakan Layanan melalui alokasi memori berlebih melalui HttpClient.

CVE-2022-29145 .NET Penolakan Kerentanan Layanan Kerentanan ada di .NET 6.0, .NET 5.0 dan .NET Core 3.1 di mana klien berbahaya dapat menyebabkan penolakan layanan ketika formulir HTML diurai.

CVE-2022-24513 Elevasi kerentanan hak istimewa Potensi elevasi kerentanan hak istimewa ada ketika layanan pembaruan Microsoft Visual Studio secara tidak benar mengurai data konfigurasi lokal.


17.0.9 Visual Studio 2022 versi 17.0.9

dirilis 19 April 2022

Masalah yang Ditangani dalam rilis 17.0.9 ini

  • Memperbaiki regresi vctip.exe dari 17.0.8
  • Memperbaiki bug yang mencegah beberapa aplikasi yang dibangun dengan Address Sanitizer (ASAN) untuk dimuat di Windows 11.
  • Memperbaiki masalah ASAN lain di mana aplikasi multi-utas dengan ketidakcocokan timbunan mungkin mengalami kebuntuan, laporan "wild pointer freed" palsu, atau kebuntuan selama proses keluar.
  • Memperbaiki masalah 'Tidak dapat menginstal ekstensi apa pun (vsix) untuk Visual Studio pada komputer offline'.

17.0.8 Visual Studio 2022 versi 17.0.8

dirilis 12 April 2022

Masalah yang Ditangani dalam rilis 17.0.8 ini

Dari Komunitas Pengembang

Saran Keamanan Ditangani

CVE-2022-24765 Elevasi kerentanan hak istimewa Potensi elevasi kerentanan hak istimewa ada di Git untuk Windows, di mana operasi Git dapat berjalan di luar repositori sambil melakukan seraching untuk direktori Git. Git untuk Windows sekarang diperbarui ke versi 2.35.2.1.

CVE-2022-24767 DLL membajak kerentanan Potensi kerentanan pembajakan DLL ada di Git untuk penginstal Windows, saat menjalankan uninstaller di bawah akun pengguna SISTEM. Git untuk Windows sekarang diperbarui ke versi 2.35.2.1.

CVE-2022-24513 Elevasi kerentanan hak istimewa Potensi elevasi kerentanan hak istimewa ada ketika layanan pembaruan Microsoft Visual Studio secara tidak benar mengurai data konfigurasi lokal.


17.0.7 Visual Studio 2022 versi 17.0.7

dirilis 8 Maret 2022

Masalah yang Ditangani dalam rilis 17.0.7 ini

  • Peningkatan performa pada monitor kecepatan refresh tinggi.
  • Memperbaiki hang selama startup Visual Studio untuk pengguna SKU Komunitas.

Dari Komunitas Pengembang

Komunitas Pengembang memiliki daftar lengkap perbaikan yang tersedia di 17.0.

Saran Keamanan Ditangani

Kerentanan CVE-2020-8927 Kerentanan Eksekusi kode jarak jauh ada di .NET 5.0 dan .NET Core 3.1 di mana luapan buffer ada di versi pustaka Brotli sebelum 1.0.8.

Kerentanan CVE-2022-24464 Penolakan kerentanan layanan ada di .NET 6.0, .NET 5.0, dan .NET CORE 3.1 saat mengurai jenis permintaan formulir http tertentu.

Kerentanan CVE-2022-24512 Kerentanan Eksekusi Kode Jarak Jauh ada di .NET 6.0, .NET 5.0, dan .NET Core 3.1 di mana buffer tumpukan diserbu dalam rutinitas .NET Double Parse.

CVE-2021-3711 OpenSSL Buffer Overflow kerentanan Potensi kerentanan luapan buffer ada di OpenSSL, yang dikonsumsi oleh Git untuk Windows. Git untuk Windows sekarang diperbarui ke versi 2.35.1.2, yang mengatasi masalah ini.


17.0.6 Visual Studio 2022 versi 17.0.6

dirilis 8 Februari 2022

Masalah yang Ditangani dalam rilis 17.0.6 ini

  • Memperbarui alat penginstal Visual Studio untuk merekam metadata saluran dengan benar.
  • Buletin yang dirilis di Alat Penginstal Visual Studio untuk penginstalan atau pembaruan.
  • Menambahkan informasi tentang tanggal kedaluwarsa saluran LTSC ke dialog Perbarui Pengaturan.
  • Menambahkan kemampuan untuk secara terprogram mengubah lokasi sumber pembaruan secara independen dari benar-benar melakukan pembaruan. Ini memungkinkan admin TI untuk secara terprogram mengubah saluran pembaruan.
  • Memperbarui GitHub menambahkan pengalaman akun untuk meningkatkan tingkat keberhasilannya.

Saran Keamanan Ditangani

Kerentanan CVE-2022-21986 Kerentanan Penolakan Kerentanan Layanan ada di .NET 5.0 dan .NET 6.0 ketika server web Kestrel memproses permintaan HTTP/2 dan HTTP/3 tertentu


17.0.5 Visual Studio 2022 versi 17.0.5

dirilis 13 Januari 2022

Masalah yang Ditangani dalam rilis 17.0.5 ini

  • Menangani instans sesekali di mana VSInstr tidak akan keluar saat melengkapi biner dengan metadata volatil yang menyebabkan Profil Instrumentasi gagal.
  • Memperbaiki masalah di mana link.exe kadang-kadang crash atau macet saat memproduksi PDB bersama dengan biner.
  • Memperbaiki bug dalam C++ Concurrency::p arallel_for_each yang mengalami crash proses panggilan karena luapan bilangan bulat.
  • Memperbaiki bug dalam perbandingan CString ATL di bawah mode bahasa C++20 dan C++Terbaru.
  • Memperbaiki crash selama eksekusi biner PGI-ed pada arm64 dan arm64ec ketika sejumlah besar pemeriksaan pogo digunakan.
  • Memperbaiki masalah yang mengoptimalkan fungsi yang sangat besar dapat menghasilkan kode yang salah.

17.0.4 Visual Studio 2022 versi 17.0.4

dirilis 16 Desember 2021

Masalah yang Ditangani dalam rilis 17.0.4 ini

  • Menambahkan Dukungan Xcode 13.2.

17.0.3 Visual Studio 2022 versi 17.0.3

dirilis 14 Desember 2021

Masalah yang Ditangani dalam rilis 17.0.3 ini

Penyajian karakter kontrol teks dua arah

Untuk mencegah eksploitasi yang berpotensi berbahaya yang memungkinkan kode salah direpresentasikan, editor Visual Studio tidak akan lagi mengizinkan karakter kontrol teks dua arah untuk memanipulasi urutan karakter di permukaan pengeditan. Opsi baru akan menyebabkan karakter kontrol teks dua arah ini ditampilkan dengan tempat penampung. Karakter kontrol teks dua arah masih akan ada dalam kode karena perilaku ini hanya berdampak pada apa yang dirender di editor kode.

VS with bidirectional text control characters replaced with placeholders

Fungsionalitas ini dikontrol dalam Alat\Opsi. Di bawah halaman Editor Teks\Umum ada opsi untuk "Tampilkan karakter kontrol teks dua arah", yang akan diperiksa secara default. Saat dicentang, semua karakter kontrol teks dua arah akan dirender sebagai tempat penampung. Menghapus centang opsi akan kembali ke perilaku sebelumnya di mana karakter ini tidak dirender.

Karakter Unicode dianggap sebagai karakter kontrol teks dua arah jika termasuk dalam salah satu rentang berikut: U+061c, U+200e-U+200f, U+202a-U+202e, U+2066-U+2069.

  • Memperbaiki crash di Desainer Formulir Web
  • Memperbaiki masalah di mana penyelesaian CSS untuk !important akan menyisipkan teks di lokasi yang salah dalam file HTML atau Razor.
  • Memperbaiki regresi dengan Xamarin.Forms XAML Hot Reload yang bertentangan dengan pustaka yang berbagi dependensi serupa, seperti SignalR. Xamarin.Forms XAML Hot Reload sekarang harus dapat beroperasi apa pun yang dimuat dalam aplikasi Anda.
  • Memperbaiki masalah di mana Halaman Gambaran Umum Proyek, Alat Diagnostik, atau jendela Profiler Performa terkadang akan kosong.
  • Memperbaiki masalah dalam pengeditan file pisau cukur di mana kursor terkadang akan melompat ke lokasi yang berbeda di tengah pengetikan.

Dari Komunitas Pengembang

Komunitas Pengembang memiliki daftar lengkap perbaikan yang tersedia di 17.0.

Saran Keamanan Ditangani

Kerentanan CVE-2021-43877 .NET Elevasi kerentanan hak istimewa ada di ANCM yang dapat memungkinkan elevasi hak istimewa ketika aplikasi .NET core, .NET 5 dan .NET 6 dihosting dalam IIS.

Karakter kontrol teks dua arah CVE-2021-42574 Dua Arah dapat digunakan untuk menyebabkan kode dirender di editor secara berbeda dari apa yang ada di disk.


17.0.2 Visual Studio 2022 versi 17.0.2

dirilis 30 November 2021

Masalah yang Ditangani dalam rilis 17.0.2 ini

  • Perbaikan untuk codegen silent-bad dengan operasi seperti memmove dengan data yang tumpang tindih
  • Menambahkan olahpesan di Jendela output yang muncul saat menggunakan Modul C++ atau Unit Header. Ini berisi masalah yang saat ini diketahui menggunakan Modul atau Unit Header dengan IntelliSense.
  • Perbaiki masalah dengan Halaman Gambaran Umum CMake dan editor CMake Pengaturan terjebak pada "Menunggu IntelliSense selesai menginisialisasi..."
  • Memperbaiki masalah di mana destruktor templat yang terlibat dalam hierarki kelas dengan inisialisasi anggota data dapat diinisiasi terlalu awal, berpotensi menyebabkan diagnostik yang salah tentang penggunaan jenis yang tidak ditentukan atau kesalahan lainnya.
  • Menambahkan Python 3.9.7 ke beban kerja Python. Menghapus Python 3.7.8 karena kerentanan keamanan.
  • Memperbaiki masalah di mana Temukan Berikutnya (F3) dan Temukan Berikutnya Dipilih (Ctrl+F3) terkadang akan melompat ke kemunculan pertama dalam file alih-alih kemunculan berikutnya.
  • Atasi masalah di mana tanggal dalam antarmuka pengguna kontrol versi tidak menghormati lokal sistem operasi pelanggan.
  • Atasi masalah di Windows 11 di mana pelanggan menetapkan Terminal Windows sebagai default dan debugger tidak dapat berhenti men-debug aplikasi konsol dengan benar dan mencegah dimulainya di masa mendatang.

Dari Komunitas Pengembang

Komunitas Pengembang memiliki daftar lengkap perbaikan yang tersedia di 17.0.


17.0.1 Visual Studio 2022 versi 17.0.1

dirilis 16 November 2021

Masalah yang Ditangani dalam rilis 17.0.1 ini

  • Memperbaiki crash saat menggunakan build batch.
  • Memperbaiki crash saat meluncurkan proyek Xamarin.Forms dengan XAML Hot Reload diaktifkan.

Dari Komunitas Pengembang

Komunitas Pengembang memiliki daftar lengkap perbaikan yang tersedia di 17.0.

17.0.0 Visual Studio 2022 versi 17.0.0

dirilis 08 November 2021

Ringkasan Apa yang Baru dalam Rilis Visual Studio 2022 versi 17.0.0 ini

64-bit

  • devenv.exe sekarang hanya 64-bit

Microsoft Azure Cloud Services

  • Proyek Azure Cloud Service (klasik) baru tidak didukung karena tidak digunakan lagi di Azure untuk pelanggan baru. Proyek Azure Cloud Service (dukungan yang diperluas) adalah pengganti yang direkomendasikan.
  • Proyek Azure Cloud Service (klasik) yang ada dapat dibuka dan didukung sepenuhnya.

C++

  • Alat build v143 sekarang tersedia melalui alat penginstal Visual Studio serta alat build mandiri.
  • Pengalaman Hot Reload baru sekarang tersedia untuk aplikasi C++ asli saat berjalan di bawah debugger. Ini mendukung proyek MSBuild dan CMake. Untuk informasi selengkapnya, lihat bagian Hot Reload kami di bawah ini.
  • Anda sekarang dapat membangun dan men-debug secara asli di WSL2 tanpa membuat koneksi SSH. Proyek CMake lintas platform serta proyek Linux berbasis MSBuild didukung.
  • Visual Studio sekarang mendukung buildPresets.targets opsi di CMakePresets.json. Ini memungkinkan Anda untuk membangun subset target dalam proyek CMake Anda.
  • Menu Project dalam proyek CMake telah disederhanakan serta mengekspos opsi untuk "Hapus Cache dan Konfigurasi Ulang" dan "Lihat Cache".
  • Halaman Gambaran Umum CMake telah diperbarui untuk mendukung CMakePresets.json.
  • Bendera yang diimplementasikan /scanDependencies untuk menghasilkan dependensi modul C++20 untuk proyek CMake seperti yang dijelaskan dalam P1689r4. Ini adalah langkah menuju dukungan untuk membangun proyek berbasis modul dengan CMake dan kami sedang berupaya menyelesaikan dukungan ini di rilis selanjutnya.
  • Anda sekarang dapat men-debug proses yang berjalan pada sistem jarak jauh dari Visual Studio dengan LLDB.
  • Kami telah meningkatkan versi CMake yang dikirim dengan Visual Studio ke versi 3.21. Lihat catatan rilis CMake 3.21 untuk detail tentang apa yang tersedia.
  • Alat LLVM yang dikirim dengan Visual Studio telah ditingkatkan ke LLVM 12. Lihat catatan rilis LLVM untuk detailnya.
  • Toolset MSVC sekarang default ke hashing sumber SHA-256 dalam rekaman debug. Sebelumnya, toolset memakai MD5 untuk hashing sumber secara default.
  • Pengembangan Game dengan beban kerja C++ sekarang memasang Mesin Unreal terbaru dengan dukungan untuk Visual Studio 2022.
  • Melakukan penyempurnaan di C++ IntelliSense saat memberikan penyorotan navigasi dan sintaksis untuk jenis dari Modul dan Unit Header yang diimpor.
  • Peningkatan performa C++ IntelliSense dengan mengoptimalkan penggunaan header cache dan akses database simbol, memberikan waktu muat yang ditingkatkan untuk masuk ke kode Anda.
  • Linter Kode IntelliSense untuk C++ sekarang aktif secara default, memberikan saran instan ketika Anda mengetik dan memperbaiki saran untuk cacat kode umum.
  • Dukungan untuk libfuzzer di bawah sakelar -fsanitize=fuzzer. Lihat dokumentasi untuk detail selengkapnya.
  • Kami telah meningkatkan deteksi dereferensi pointer null dalam alat analisis kode kami.
  • Analisis kode sekarang memberlakukan bahwa nilai pengembalian fungsi yang dianotasi dengan _Check_return_ atau _Must_inspect_result_ harus diperiksa.
  • Dukungan tambahan untuk gsl::not_null ke analisis kode.
  • Diperbarui ke NDK r21 LTS dalam beban kerja Pengembangan Seluler C++.
  • Header C++ AMP sekarang tidak digunakan lagi. Menyertakan <amp.h> dalam proyek C++ akan menghasilkan kesalahan build. Untuk menghilangkan kesalahan, tentukan _SILENCE_AMP_DEPRECATION_WARNINGS. Silakan lihat tautan Penghentian AMP kami untuk detail selengkapnya.

Penelusuran kesalahan & Diagnostik

  • Melampirkan ke penyempurnaan dialog proses
  • Peningkatan pembantu pengecualian
  • Paksa Jalankan ke Klik
  • Analisis Diagnostik Cadangan Memori
  • Kami telah merilis jenis breakpoint baru yang disebut Dependent Breakpoint, yang memungkinkan Anda mengonfigurasi titik henti untuk diaktifkan hanya jika titik henti lain pertama kali ditemui.
  • Kami telah menambahkan lebih banyak pembaruan ke simpul Sumber Ekstrenal , Anda sekarang dapat melihat modul di bawah sub-simpul "Modul tanpa Sumber" dan memuat simbol membentuk penjelajah solusi itu sendiri.
  • Peningkatan Breakpoint Gutter
  • Titik Henti Sementara
  • Seret dan Jatuhkan Titik Henti
  • Simpul Sumber Eksternal di Penjelajah Solusi
  • Melampirkan ke penyempurnaan dialog proses

Personalisasi

  • Menambahkan Tab Warna untuk tab vertikal dan horizontal
  • Menambahkan Paket Tema dan bekerja dengan penulis tema VISUAL Code untuk meluncurkan pengumpulan tema kustom
  • Konverter Tema Bawaan untuk mengonversi tema VISUAL Code agar berfungsi di Visual Studio 2022
  • Menambahkan kemampuan untuk menyinkronkan tema Visual Studio dengan tema Windows
  • Menambahkan kemampuan manajemen dokumen baru termasuk menyesuaikan lebar tab, menebalkan dokumen aktif, dan tombol tutup tambahan di docwell.

Editor

  • Menambahkan navigasi subkata
  • Simpan otomatis sekarang tersedia sebagai fitur pratinjau
  • Pengalaman salin/tempel multi-caret

Diperpanjang

  • API yang dihapus dari rakitan Microsoft.VisualStudio.Language.Client
  • VS SDK berisi beberapa perubahan yang melanggar dan ekstensi Visual Studio 2019 tidak akan berfungsi pada tahun 2022. Lihat dokumentasi VSSDK untuk informasi selengkapnya.
  • Rakitan Referensi VS SDK tidak lagi diinstal ke VSSDK\VisualStudioIntegration\Common\Assemblies folder. Jika build Anda mengandalkan rakitan ini, migrasikan proyek Anda untuk menggunakan paket NuGet sebagai gantinya. Untuk skenario offline:
    1. Simpan umpan nuget in-org untuk memulihkan paket nuget.
    2. Periksa biner.
  • Menambahkan perbaikan perubahan melanggar ILanguageClient

Layanan Cloud

  • Azurite akan digunakan untuk emulasi lokal Azure Storage alih-alih Azure Storage yang lebih lama dan tidak lagi dikembangkan secara aktif Azure Storage Emulator.

Alat Git

Menu Bantuan

  • Selama 17.0 kami telah merenovasi Menu Bantuan dengan materi Memulai dan Tips/Trik yang bermanfaat.
  • Menyediakan lebih banyak kolaborasi dengan tim pengembangan kami dengan menambahkan hal-hal seperti akses ke Komunitas Pengembang, Catatan Rilis, Peta Strategi produk Visual Studio, dan halaman Media Sosial kami.

Pengalaman Isi Ulang Panas

  • Hot Reload sekarang tersedia untuk pengembang .NET melalui debugger Visual Studio dan tanpa debugger untuk banyak jenis aplikasi .NET 6
  • Hot Reload sekarang tersedia untuk pengembang C++ saat menggunakan Visual Studio Debugger

Untuk detail selengkapnya, lihat tautan di atas

IntelliCode

  • Siapa le line completions memprediksi potongan kode C# Anda berikutnya berdasarkan konteks Anda saat ini, dan menyajikannya sebagai saran sebaris di sebelah kanan kursor Anda.
  • Siapa le line completions sekarang kompatibel dengan build terbaru JetBrains ReSharper. Perhatikan bahwa memperbarui konteks penyelesaian baris berdasarkan pemilihan item daftar penyelesaian kustom ReSharpers tidak didukung - jika diperlukan, pengguna ReSharper dapat memilih untuk menggunakan IntelliSense asli Visual Studio sebagai gantinya, seperti yang didokumenkan di sini

JavaScript/TypeScript

  • Kami telah merilis jenis proyek JavaScript/TypeScript baru yang membangun proyek JavaScript/TypeScript mandiri dengan alat tambahan. Anda akan dapat membuat proyek Angular dan React di Visual Studio menggunakan versi kerangka kerja yang diinstal di komputer Anda.
  • Pengujian JavaScript dan TypeScript sekarang tersedia di Visual Studio Test Explorer
  • NPM GUI tersedia, sehingga Anda sekarang dapat mengunduh modul NPM dengan cara yang sama seperti Anda mengunduh paket Nuget

.NET 6 SDK

  • .NET 6 SDK disertakan dalam Visual Studio 2022

Produktivitas .NET

  • Memperkenalkan refaktor parameter dapat memindahkan parameter baru dari implementasi metode ke pemanggilnya.
  • Lacak Sumber Nilai untuk analisis aliran data
  • Opsi untuk menggaris bawahi variabel yang ditetapkan ulang
  • Menambahkan opsi pencarian dalam dialog Hasilkan Penimpaan
  • Info cepat untuk tag kode> XML <sekarang mempertahankan spasi kosong dan blok CDATA
  • Jendela Temukan Semua Referensi sekarang akan mengelompokkan proyek multi-target
  • Pemfaktoran ulang untuk menghapus jenis berulang di Visual Basic
  • Buka Implementasi tidak akan lagi menavigasi ke anggota dengan deklarasi abstrak yang juga ditimpa.
  • Sinkronkan namespace agar sesuai dengan struktur folder Anda dari Penjelajah Solusi
  • Mengonfigurasi analisis kode latar belakang dari Penjelajah Solusi
  • Jenis referensi nullable sekarang diaktifkan secara default untuk proyek .NET baru
  • Refaktor namespace cakupan file C# 10.0
  • Navigasi ke sumber yang didekompilasi sekarang aktif secara default
  • Pemfaktoran ulang untuk lebih memilih pemeriksaan null atas pemeriksaan tipe
  • Komentar XML sekarang akan secara otomatis menghasilkan <exception> tag ketika metode secara eksplisit melemparkan pengecualian
  • Margin Warisan sekarang diaktifkan secara default

Bahasa pemrograman

  • C#10

Razor (ASP.NET Core) Editor

  • Pengurangan UI membekukan dan meningkatkan performa pada startup solusi
  • Pewarnaan semantik yang lebih cepat hingga 2x dalam beberapa solusi
  • Dukungan F7 (lihat kode) dalam file Razor
  • Dukungan cuplikan dalam file pisau cukur yang akan menyelesaikan sesi cuplikan dengan satu tab alih-alih menekan tab-tab
  • Pemformatan yang lebih baik dalam @code blok ketika ada Komponen HTML dan Razor berlapis
  • Dukungan Hot Reload dalam file Razor
  • Peningkatan performa
  • Pemformatan dan penyempurnaan indentasi
  • Warna editor Razor baru
  • TagHelpers sekarang diwarnai dan memiliki dukungan klasifikasi info cepat dan tipsalat penyelesaian
  • Penyorotan dan navigasi kurung sudut untuk konstruksi Razor
  • Komentar sekarang memiliki penyelesaian otomatis, indentasi cerdas, penyertaan otomatis kelanjutan komentar, dan navigasi blokir komentar

Pengujian Jarak Jauh

  • Pratinjau eksperimental yang sangat awal untuk mengaktifkan pengujian yang berjalan pada lingkungan jarak jauh seperti kontainer linux, WSL, dan melalui koneksi SSH.

Dukungan alat pengujian

  • Perlihatkan di Test Explorer
  • Versi baru platform pengujian yang dimulai dengan 17.0 tidak akan dapat menjalankan pengujian Generik dan Pengujian terurut. Fitur khusus ini hanya dikirim sebagai bagian dari versi awal MSTestv1 dan tidak termasuk dalam MSTestv2. Kami melihat penggunaan fitur-fitur ini yang sangat rendah dan pengujian yang dipesan sekarang dianggap bertentangan dengan praktik pengujian terbaik.
  • Beberapa pengalaman pengujian tidak akan tersedia di 17.0 termasuk membuat file Test Pengaturan baru dan editor Test Pengaturan. Uji coba masih akan dapat menggunakan file Uji Pengaturan, namun Uji Pengaturan diganti dengan Jalankan Pengaturan dan kami mendorong pengguna untuk memigrasikan peningkatan performa dan fungsionalitas. Baca selengkapnya.
  • Pembaruan dukungan Uji Beban Web dan Pengujian UI Berkode. Pengujian UI berkode dan [Pengujian Beban Web](Akhir masa pakai layanan pengujian beban berbasis cloud | Blog Azure DevOps (microsoft.com) secara resmi tidak digunakan lagi pada tahun 2019. Untuk meminimalkan dampak kepada pengguna, ada dukungan minimum untuk fitur-fitur ini di Visual Studio 2022. Kami sangat mendorong pengguna untuk beralih dari Uji UI Berkode dan Uji Beban Web.

Populasi kotak alat untuk SDK Ekstensi UWP

  • SDK Ekstensi UWP sekarang diperlukan untuk secara eksplisit menyatakan jenis yang ingin mereka munculkan di Kotak Alat dengan mencantumkannya dalam file SdkManifest.xml mereka. Perilaku versi Visual Studio yang lebih lama tidak berubah; mereka akan mengabaikan daftar kontrol dalam manifes dan sebaliknya secara dinamis menghitung jenis kontrol di rakitan SDK.

Lokasi Tepercaya

  • Kami telah mengubah fungsionalitas "Trust Pengaturan" dan sekarang dapat menunjukkan peringatan setiap kali kode yang tidak tepercaya (misalnya file, proyek, atau folder) akan dibuka di dalam IDE.
  • Pemeriksaan kepercayaan sekarang dilakukan pada tingkat folder solusi
  • Proyek yang dibuat pengguna secara otomatis ditambahkan ke daftar tepercaya
  • Pengguna dapat melewati pemeriksaan kepercayaan pada lokasi sementara yang dibuat oleh Visual Studio

Pembaruan, LTSC, dan Penyebaran

  • Dengan Visual Studio 2022, akan ada beberapa garis besar layanan yang didukung secara bersamaan yang akan dirilis pada musim gugur dan di musim semi. Untuk detail selengkapnya, lihat dokumentasi Visual Studio Release Rhythm dan Siklus Hidup Produk Visual Studio 2022.
  • Alat penginstal baru yang dilengkapi dengan Visual Studio 2022 sekarang memiliki kemampuan untuk mengonfigurasi dari mana produk Visual Studio harus mendapatkan pembaruannya. Ini memungkinkan Anda memilih pembaruan dari LTSC yang berbeda, atau, jika Anda berada di lingkungan perusahaan terkelola, Anda dapat mengonfigurasi klien untuk mendapatkan pembaruannya dari tata letak. Kemampuan untuk mengonfigurasi sumber untuk pembaruan adalah fungsionalitas baru yang dilengkapi dengan Alat Penginstal Visual Studio, dan dengan demikian perilaku ini juga berlaku untuk versi Visual Studio yang downlevel, seperti Visual Studio 2019. Untuk informasi tambahan tentang mengonfigurasi saluran pembaruan, lihat dokumentasi Perbarui Visual Studio . Untuk informasi tambahan tentang membuat ini berfungsi untuk tata letak jaringan, lihat Panduan Administrator Visual Studio.
  • Administrator TI sekarang dapat melaporkan masalah tanpa menginstal Visual Studio.

Antarmuka Pengguna

  • Ikon default telah diperbarui dan disegarkan.

Alat Web

  • Halaman Terbitkan ringkasan sekarang memiliki tindakan untuk memulai/menghentikan penelusuran kesalahan jarak jauh dan pembuatan profil di bawah '...' menu di sudut kanan atas bagian 'Hosting'
  • Halaman Koneksi ed Services sekarang memiliki tindakan untuk meluncurkan Storage Explorer
  • Templat "ASP.NET Core Empty" yang dilengkapi dengan .NET 6 menggunakan paradigma 'API minimal' baru yang kami mulai tambahkan dukungannya
  • Azurite akan digunakan untuk emulasi lokal Azure Storage alih-alih Azure Storage yang lebih lama dan tidak lagi dikembangkan secara aktif Azure Storage Emulator.
  • Anda dapat menambahkan autentikasi ke aplikasi ASP.NET Core menggunakan platform identitas Microsoft melalui pengalaman Layanan yang Koneksi di Visual Studio.

WPF XAML Designer untuk .NET Framework

  • WPF XAML Designer saat ini untuk .NET Framework diganti dengan WPF XAML Designer baru untuk .NET Framework, berdasarkan arsitektur yang sama yang digunakan untuk WPF XAML Designer untuk .NET (.NET Core). Pengalaman Visual Studio akan terlihat sama, tetapi vendor kontrol pihak ketiga perlu mendukung model ekstensibilitas baru sejak model sebelumnya berdasarkan .design.dll dan Microsoft.Windows.Design.Extensibility tidak digunakan lagi. Jika Anda sudah membuat .designtools.dll ekstensi untuk .NET (.NET Core), ekstensi yang sama akan berfungsi untuk WPF XAML Designer baru untuk .NET Framework. Lihat dokumen migrasi di bawah ini untuk informasi lebih lanjut tentang cara bermigrasi ke model ekstensibilitas baru.

XAML Hot Reload

  • XAML Hot Reload Changes - Perubahan kecil pada toolbar dan pengaturan dalam aplikasi

Pratinjau Langsung XAML

  • XAML Live Preview sekarang tersedia untuk pengembang WPF, UWP, WinUI, dan Xamarin.Forms yang menjalankan aplikasi mereka di Android Emulator atau sebagai aplikasi desktop UWP. Pratinjau Langsung mengambil antarmuka pengguna aplikasi yang sedang berjalan dan membawanya ke jendela yang ditampar dalam Visual Studio. Ini memudahkan penggunaan XAML Hot Reload untuk mengubah aplikasi sambil melihat perubahan tersebut di dalam Visual Studio itu sendiri, tanpa perlu tab bolak-balik antara aplikasi yang sedang berjalan dan Visual Studio sambil membuat perubahan kode XAML langsung.

Untuk informasi lebih lanjut, klik tautan di atas.

Data Sampel XAML

  • Data Sampel Design-Time sekarang akan ditambahkan secara default saat membuat kontrol DataGrid, ListBox, dan ListView dari kotak alat di aplikasi WPF. Untuk menonaktifkan perilaku ini, hapus centang 'Tambahkan data sampel secara otomatis pada pembuatan elemen' di bawah Alat -> Opsi -> Perancang XAML."
  • Untuk mempelajari selengkapnya tentang Data Sampel, silakan kunjungi dokumentasi Data Sampel.

Pengalaman pengikatan XAML yang ditingkatkan

  • Kami telah membuat banyak peningkatan untuk membuat pengikatan data cepat dan mudah, seperti akses cepat ke dialog Pengikatan Data dari Pemeriksa Properti, kemampuan untuk mengatur pengikatan dari Tindakan Cepat, kemampuan untuk memilih properti untuk diikat ke dalam Dialog Pengikatan Data.

Untuk informasi lebih lanjut, klik tautan di atas.

Masalah Umum

Pengembangan Seluler dengan .NET

Python Tooling

C++ IntelliSense

Detail Apa yang Baru dalam Rilis Visual Studio 2022 versi 17.0.0 ini

Penelusuran kesalahan & Diagnostik

  • Melampirkan ke penyempurnaan dialog proses
  • Tampilan daftar proses induk/anak baru melalui pengalih di bagian bawah jendela
    • Pilihan tampilan harus dipertahankan.
    • Penekanan tombol kiri di keyboard menavigasi ke proses induk dalam tampilan induk/turunan.
    • Semua kolom harus dapat diurutkan seperti tampilan asli.
  • Kolom Baris Perintah Baru tersedia di kedua tampilan.
  • Nama kumpulan aplikasi ditampilkan di "Kolom judul" untuk proses w3wp

! [Lampirkan ke proses ] (media/17.0/17.0_P2_attach_to _process_3.png)

  • Menambahkan Pembantu Pengecualian di blok tangkap. Ini akan menampilkan pembantu pengecualian dengan info pengecualian yang relevan ketika langkah terkelola menyebabkan pengecualian dilemparkan, dan langkah selesai dalam blok tangkapan.
  • Tombol 'lanjutkan' baru: memperlihatkan pembantu pengecualian pada pengecualian 'tertangkap'.

Exception Handler Updates

  • Kami menambahkan opsi untuk Memaksa eksekusi untuk mengklik yang akan menjalankan debugger hingga posisi kursor yang dipilih tercapai saat mengabaikan semua titik henti di antaranya.
  • Anda dapat menjalankan ini dengan mengklik "Paksa Jalankan ke Klik" dari menu klik kanan pada baris kode yang diinginkan.

Force Run to Cursor

  • Saat aplikasi berada dalam mode debugging, Anda juga dapat menjalankan "Paksa Jalankan ke Klik" dengan mengklik glyph hijau yang muncul di samping baris kode ketika mouse telah melayang sambil menahan tombol SHIFT.

Force Run to Cursor Glyph

  • Analisis Diagnostik Cadangan Memori
    • Kami telah meningkatkan mesin penganalisis untuk menemukan lebih banyak masalah sinkronisasi-over-asinkron di ASP.NET cadangan memori Core.
    • Temukan bagian mana dari kode Anda yang menggunakan sumber daya CPU terbanyak dengan meninjau 5 utas teratas berdasarkan waktu CPU.
    • Tinjau seluruh tumpukan terkelola untuk tanda-tanda tekanan memori di Generasi 0, 1, 2 dan Tumpukan Objek Besar.
    • Jika Anda memiliki crash dump, Anda dapat menemukan pengecualian dan utas kesempatan kedua yang menyebabkan aplikasi Anda mengalami crash.
    • Berjuang untuk membentuk hipotesis diagnostik? Ketika penyebab pasti crash atau hang tidak diketahui, Anda dapat menggunakan penganalisis Pengecualian untuk dengan cepat menemukan dan meninjau semua pengecualian pada tumpukan.
    • Untuk saat-saat ketika analisis memori penting, kami telah meningkatkan heuristik penganalisis antrean Finalizer. Kami sekarang fokus pada kode Anda dan mengecualikan objek yang dikelola oleh kerangka kerja .NET.

Titik Henti Dependen

Ini adalah titik henti baru yang memungkinkan pengguna mengonfigurasi titik henti untuk diaktifkan hanya jika titik henti lain pertama kali tertembak. Saat penelusuran kesalahan, debugger Visual Studio hanya akan menjeda aplikasi pada titik henti Dependen jika titik henti prasyarat terpukul. Anda dapat mengonversi titik henti apa pun ke Titik henti Dependen dengan mengaktifkan kotak centang "Hanya aktifkan saat titik henti mengikuti tertembak" dari jendela pengaturan dan memilih titik henti prasyarat dari dropdown tempat Anda ingin mengonfigurasi titik henti Dependen Anda.

Dependent Breakpoint

Peningkatan Breakpoint Gutter

Kami menambahkan breakpoint glyph baru untuk menunjukkan lokasi di mana pengguna dapat mengatur titik henti.

Breakpoint Glyph

Klik kanan pada breakpoint glyph tersebut akan memberikan menu konteks baru dengan opsi; yang memberikan cara cepat untuk membuat titik henti lanjutan (Titik henti kondisi, Titik jeda dan Titik henti sementara) dalam lebih sedikit klik.

Breakpoint Context Menu

Titik Henti Sementara

Ini adalah titik henti baru yang memungkinkan pengguna memecahkan kode hanya sekali. Saat penelusuran kesalahan, debugger Visual Studio hanya akan menjeda runtime aplikasi sekali untuk titik henti ini dan menghapusnya segera setelah dipukul. Anda dapat mengonversi titik henti apa pun ke titik henti sementara dengan mengaktifkan kotak centang "Hapus titik henti setelah terkena" dari jendela pengaturan. Atau, Anda dapat menggunakan menu konteks klik kanan baru dari selokan titik henti untuk mengatur titik henti ini.

Temporary Breakpoint

Seret dan Jatuhkan Titik Henti

Kami telah menambahkan gerakan seret dan lepas untuk titik henti. Anda sekarang dapat menahan titik henti dan dirilis pada baris kode yang diinginkan untuk memindahkan titik henti dari satu lokasi ke lokasi lain. Ini berfungsi untuk titik henti kemajuan kami selama variabel tindakan/kondisi berada dalam konteks.

Drag and Drop Breakpoint

Simpul Sumber Eksternal di Penjelajah Solusi

Kami menambahkan node "Sumber Eksternal" baru di Penjelajah solusi. Ini saat ini hanya akan muncul saat penelusuran kesalahan dan akan menampilkan sumber untuk modul terkelola dengan simbol yang dimuat yang berisi Info Server Sumber atau Tautan Sumber. Saat penelusuran kesalahan, setiap file simbol terkelola yang dimuat (.pdb) yang memiliki informasi Server Sumber akan muncul di bawah simpul ini. Anda dapat menelusuri file seperti folder penjelajah solusi lainnya atau mengeklik dua kali item untuk mengunduh file dari Server Sumber dan membukanya di Editor VS. External Sources node in Solution explorer

Lampirkan untuk memproses Penyempurnaan Dialog

Kami menambahkan kotak centang refresh otomatis baru dalam dialog lampirkan ke proses , yang saat memeriksa refresh daftar proses secara otomatis dengan proses yang tersedia. Opsi "Pilih jendela apa pun dari desktop" baru dari dialog lampirkan ke proses, memungkinkan pengguna memilih jendela yang sedang berjalan dari desktop dan melampirkan ke proses terkait untuk penelusuran kesalahan.

Attach to process Dialog Improvements

Analisis Diagnostik Cadangan Memori

Menemukan bingkai panggilan akar ketika Pengecualian Stack Overflow terjadi bisa sulit dan memakan waktu. Penganalisis terbaru kami menyajikan tampilan yang nyaman dari Call Stack dan menghapus bingkai berulang dan berisik untuk analisis masalah yang lebih cepat.

Personalisasi

Mengonversi Tema Visual Studio Code ke Tema Visual Studio

Kami telah membuat alat Konverter Tema yang dapat mengonversi tema VISUAL Code agar berfungsi di Visual Studio. Cobalah di sini.

Paket Tema Visual Studio Baru

Tema VISUAL Code default sekarang tersedia sebagai Paket Tema Visual Studio. Lihatlah paket tema di sini.

Sinkronkan Tema ke OS Windows

Kami menambahkan kemampuan untuk menyinkronkan tema Visual Studio Anda ke tema Windows Anda, sehingga tema Anda dapat menyesuaikan berdasarkan jumlah cahaya sekitar yang tersedia. Untuk mengaktifkan ini, navigasikan ke Tema > Alat > Gunakan Pengaturan Sistem.

Tab Warna

Untuk mengaktifkan tab warna, navigasi ke Tab Opsi > Alat > & Windows, dan aktifkan Tab Warna.

Color tabs

Editor

Navigasi subkata

Ctrl+Alt+Panah Kiri dan Ctrl+Alt+Panah Kanan sekarang akan menavigasi menurut subkata. Misalnya, string "HelloWorld" mengidentifikasi "Hello" dan "World" sebagai subkata. Mengaktifkan navigasi Subword di Alat > Opsi > Editor > Teks Umum akan menyebabkan perintah terkait kata (misalnya TransposeWord) berinteraksi dengan subkata.

Autosave

Di bawah Fitur Pratinjau Lingkungan > Opsi > Alat>, penyimpanan otomatis sekarang tersedia. Jika diaktifkan, ketika aplikasi Visual Studio kehilangan fokus (misalnya jendela lain mendapatkan fokus), semua dokumen kotor akan disimpan ke disk jika memungkinkan. Jika ada file yang tidak dapat disimpan, file akan tetap kotor sampai pengguna secara eksplisit menyimpannya (dengan perintah Simpan atau Simpan Sebagai... ).

Pengalaman copy\paste multi-caret

Kami meningkatkan pengalaman penyalinan dan tempel multi-caret. Sebelumnya, menempelkan beberapa baris ke dalam beberapa tanda sisipan mengakibatkan seluruh clipboard diduplikasi di setiap tanda sisipan. Sekarang, menempelkan beberapa baris ke dalam jumlah tanda sisipan yang sama akan menyisipkan setiap baris ke tanda sisipan masing-masing. Untuk menggunakan multi-caret tekan Alt+Shift+mouse klik atau Alt+Shift+. dan gunakan tombol Ctrl+Shift+panah untuk memperluas pilihan. Selanjutnya, tekan Ctrl+C untuk menyalin teks dalam beberapa pilihan. Gunakan Alt+Shift+mouse klik untuk membuat beberapa tanda sisipan untuk setiap baris yang ingin Anda tempelkan di lokasi yang diinginkan. Terakhir, tekan Ctrl+V untuk menempelkan setiap baris pada tanda sisipannya sendiri.

Multi-caret copy and paste

Selain itu, Anda dapat menggunakan Alt+Shift+tombol panah atas atau bawah atau Alt+Shift+mouse seret untuk memilih dengan beberapa caret. Sebelumnya, gerakan ini membuat pilihan kotak. Sekarang, pilihan kotak berubah menjadi beberapa karet. Metode ini lebih mudah dan lebih cepat daripada harus mengklik lokasi yang tepat untuk menyisipkan tanda sisipan individual. Jika Anda lebih suka tetap menggunakan pilihan kotak dengan alt+Shift+tombol panah dan Alt+Shift+mouse seret saat memperluas pilihan multi-caret buka Opsi > Alat > Editor > Teks Tingkat Lanjut dan pilih Gunakan pilihan kotak.

Multi-caret box selection option

Diperpanjang

Microsoft.VisualStudio.LanguageServer.Client memperkenalkan cara baru untuk menyesuaikan pemberitahuan saat klien bahasa gagal menginisialisasi.

Tugas inisialisasi sekarang akan dilacak oleh Pusat Status Tugas (TSC). Jika tugas inisialisasi gagal, pengguna dapat membuka TSC mendapatkan info selengkapnya tentang apa yang salah. Klien bahasa sekarang akan dapat menyesuaikan pesan yang ditunjukkan kepada pengguna yang memberikan informasi tentang apa yang diwakili oleh kegagalan ini kepada mereka dan kemungkinan tindakan yang harus diambil untuk memperbaikinya. Untuk melakukannya, kami memperkenalkan serangkaian API baru di antarmuka ILanguageClient. API baru ini akan menyebabkan perubahan yang melanggar di antarmuka ILanguageClient, sehingga ekstensi bahasa harus mereferensikan paket baru agar berfungsi di Visual Studio 2022.

Berikut ini adalah API baru:

  1. Properti ShowNotificationOnInitializeFailed - Properti Boolean yang akan menentukan apakah server bahasa ingin kami menampilkan gelembung untuk memberi tahu pengguna tentang kegagalan seperti ini:

ShowNotificationOnInitializeFailed in the Task Status Center

Rekomendasinya adalah mengatur properti ini ke true hanya jika kegagalan secara drastis memengaruhi pengalaman pengguna untuk proyek yang saat ini mereka kerjakan.

  1. Metode OnServerInitializedFailedAsync - Metode ini akan dipanggil ketika inisialisasi klien bahasa gagal. Kami akan menyediakan objek LanguageClientInitializationInfoBase dengan informasi tentang bagaimana kegagalan terjadi sehingga klien bahasa dapat memberi tahu pengguna tentang kegagalan dengan caranya sendiri atau memberikan pesan yang disesuaikan dengan konteks kegagalan. Jika pesan disediakan, pesan akan ditampilkan di jendela Output Visual Studio.

Language client initialization error in the Output Window

JavaScript/TypeScript

Sekarang ada dukungan untuk jenis proyek JavaScript/TypeScript baru yang memungkinkan Anda membuat proyek Angular, React, dan Vue mandiri di Visual Studio. Proyek akan dibuat menggunakan alat cli kerangka kerja yang telah Anda instal di komputer lokal Anda. Ini juga berarti bahwa versi templat didasarkan pada versi cli yang Anda miliki di komputer lokal Anda.

Dalam proyek baru ini, Anda akan dapat menjalankan pengujian unit dan mengintegrasikannya dengan proyek ASP.NET Core API. Dokumentasi dapat ditemukan di sini

  • Kami telah merilis jenis proyek JavaScript/TypeScript baru yang membangun proyek JavaScript/TypeScript mandiri dengan alat tambahan. Baca selengkapnya tentang hal itu di sini
  • NPM GUI tersedia, sehingga Anda sekarang dapat mengunduh modul NPM dengan cara yang sama seperti Anda mengunduh paket Nuget di proyek JavaScript/TypeScript baru

NPM GUINPM GUI2

Hot Reload Experience untuk Pengembang .NET & C++

Awal tahun ini kami mengumumkan .NET Hot Reload, proyek ambisius untuk membawa Hot Reload ke pengembang .NET sebanyak mungkin. Kami memulai perjalanan ini dengan pratinjau pertama yang tersedia di Visual Studio 2019 dan menjanjikan lebih banyak lagi untuk datang di Visual Studio 2022 di mana pengalaman penuh akan dikirimkan. Hari ini saya senang berbagi detail tentang apa yang telah kami selesaikan dalam rilis GA Visual Studio 2022.

Bagi siapa saja yang baru menggunakan Hot Reload, berikut adalah pengantar cepat. Pengalaman Hot Reload di Visual Studio berfungsi untuk aplikasi .NET dan C++ terkelola. Terlepas dari jenis aplikasi yang sedang Anda kerjakan, tujuan kami dengan Hot Reload adalah untuk menghemat Anda sebanyak mungkin menghidupkan ulang aplikasi di antara pengeditan, membuat Anda lebih produktif dengan mengurangi waktu yang Anda habiskan untuk menunggu aplikasi dibangun kembali, memulai ulang, menavigasi ulang ke lokasi sebelumnya di mana Anda berada di aplikasi itu sendiri, dll.

Kami menyelesaikan ini dengan memungkinkan Anda mengedit file kode aplikasi dan segera menerapkan perubahan kode tersebut ke aplikasi yang sedang berjalan, juga dikenal sebagai "Hot Reload". Setelah perubahan tersebut diterapkan, cukup jalankan kembali kode Anda lagi dengan mengambil tindakan di aplikasi itu sendiri (atau melalui semacam timer, dll.) dan lihat perubahan segera, tidak ada jeda aplikasi melalui titik henti yang diperlukan!

Jika Anda ingin melihat beberapa demo langsung dari fitur ini, Anda dapat melihat salah satu video ini:

Hot Reload Pengalaman Pengguna di Visual Studio

Pengalaman Hot Reload untuk pengembang .NET dan C++ di Visual Studio 2022 juga telah mengalami peningkatan besar. Toolbar sekarang memiliki implementasi target tombol "Hot Reload" kami dengan tampilan yang ditingkatkan dan lebih banyak fungsionalitas.

Hal pertama yang akan Anda perhatikan adalah tombol gaya drop-down baru dengan ikon baru. Perintah diganti namanya dari "terapkan perubahan kode" (dari pratinjau awal) menjadi "Isi Ulang Panas".

Hot Reload User Experience in Visual Studio 2022

Memperluas tombol mengungkapkan akses cepat ke fitur seperti memulai ulang aplikasi yang sedang berjalan, pengalih keikutsertaan untuk Hot Reload saat menyimpan, dan akses cepat ke panel pengaturan baru.

Berikut adalah detail selengkapnya tentang setiap fitur baru:

  • Mulai ulang Aplikasi dengan Mudah: Anda sekarang dapat dengan mudah memulai ulang aplikasi yang sedang berjalan jika pengeditan kasar perlu diterapkan melalui pembangunan ulang terlepas dari apakah Anda memulai aplikasi Anda menggunakan debugger atau jika Anda memulainya tanpa debugger (BARU untuk aplikasi .NET 6!).
  • Hot Reload saat Simpan: Dalam rilis pratinjau sebelumnya, Anda hanya dapat menerapkan perubahan Hot Reload saat menyimpan di proyek ASP.NET, untuk setiap proyek lain, Anda harus secara eksplisit mengeklik tombol Muat Ulang Panas. Dalam rilis akhir sekarang dimungkinkan untuk Hot Reload menggunakan kunci simpan untuk jenis proyek apa pun. Opsi ini adalah keikutsertaan, tetapi setelah diaktifkan, opsi ini akan berlaku untuk semua sesi Visual Studio Anda di masa mendatang kecuali Anda menonaktifkannya.
  • Akses Pengaturan Mudah: Kami telah menambahkan panel opsi Hot Reload untuk memberi Anda lebih banyak kontrol saat Hot Reload diaktifkan/dinonaktifkan. Anda dapat menjangkau pengaturan ini di Visual Studio "Opsi > .NET / C++ Hot Reload" atau melalui menu dropdown tombol Hot Reload dengan mengklik Pengaturan.

Kami juga telah menambahkan dialog edit kasar yang ditingkatkan yang tersedia saat menjalankan aplikasi .NET Anda tanpa debugger.

New Rude Edit dialog for Hot Reload in Visual Studio 2022

Dialog baru ini memiliki beberapa penyempurnaan seperti:

  • Opsi keikutsertaan lebar sesi Visual Studio untuk Membangun Kembali dan Menerapkan Perubahan pada setiap pengeditan kasar Hot Reload. Setelah dicentang, ini berlaku untuk semua pengeditan kasar di masa mendatang hingga Visual Studio dimulai ulang
  • Perintah bangun ulang dan terapkan perubahan kode Anda yang dapat dicapai dengan satu klik, alih-alih beberapa langkah manual
  • Dan akses mudah ke pengaturan

Dialog ini juga memungkinkan Anda melanjutkan pengeditan jika Anda tidak ingin mengambil tindakan otomatis seperti yang dimungkinkan sebelumnya.

Ada satu batasan yang diketahui, dialog baru ini tidak akan tersedia dalam rilis GA saat menggunakan debugger, tetapi pekerjaan untuk membuatnya tersedia dalam skenario ini akan diselesaikan dalam pembaruan di masa mendatang.

Dukungan untuk aplikasi C++

Saat menggunakan Visual Studio 2022 dan memulai aplikasi Anda dengan debugger Dimungkinkan untuk Hot Reload aplikasi C++ asli saat berjalan di bawah debugger (F5) menggunakan tombol 'Isi Ulang Panas'. Hot Reload juga didukung untuk aplikasi yang dibuat menggunakan proyek CMake dan OpenFolder.

Pengalaman ini didukung oleh Edit dan Lanjutkan asli, untuk pengeditan yang didukung lihat dokumentasi kami.

.NET App Frameworks &Scenarios yang didukung

Karena kami mengumumkan Hot Reload kembali pada bulan Mei 2021 pertanyaan yang sangat umum dari pengembang .NET adalah "akankah Hot Reload berfungsi dengan kombinasi kerangka kerja/versi aplikasi .NET saya?". Kami telah membuat kemajuan besar untuk membuat jawaban YA dalam sebagian besar situasi, berikut adalah sorotannya.

  • Saat menggunakan Visual Studio 2022 dan memulai aplikasi Anda dengan debugger , pengalaman Hot Reload dasar berfungsi dengan sebagian besar jenis aplikasi .NET dan versi kerangka kerja, ini termasuk .NET Framework, .NET Core, dan .NET 5+ (untuk C# dan VB.NET sebagaimana berlaku). Jenis aplikasi yang didukung termasuk web (perubahan kode di belakang), desktop, seluler, cloud, dan jenis proyek lainnya. Aturan kunci di sini adalah jika Anda menggunakan debugger mengasumsikan Hot Reload tersedia untuk Anda dan mencobanya!
  • Saat menggunakan Visual Studio 2022 tetapi tidak menggunakan debugger (misalnya menggunakan CTRL-F5 untuk memulai aplikasi) Hot Reload sekarang tersedia bahkan tanpa debugger saat menargetkan sebagian besar jenis aplikasi .NET 6. Ini berarti bahwa aplikasi yang tidak menargetkan .NET 6 (.NET 5 atau di bawahnya) tidak akan mendukung skenario "tidak ada debugger" dan harus menggunakan debugger untuk mendapatkan dukungan Hot Reload.
  • Saat menggunakan Visual Studio 2022 dengan aplikasi .NET 6, jenis skenario terbanyak didukung. Ini tidak terbatas pada fitur "tidak ada debugger" baru yang disebutkan di atas. Ini juga termasuk kemampuan baru lainnya seperti dukungan untuk proyek Hot Reloading Blazor dan lebih umum mengedit file Razor di aplikasi ASP.NET Core dan CSS Hot Reload. Menggunakan Visual Studio 2022 dan aplikasi yang menargetkan .NET 6 bersama-sama akan memberi Anda pengalaman Hot Reload yang paling kuat dan kami harap Anda akan mencobanya.

Di bawah ini kita akan memperluas ringkasan di atas dan menyelami detail selengkapnya.

Visual Studio 2022 dengan aplikasi .NET saat menggunakan debugger

Saat menggunakan Visual Studio 2022 dan memulai aplikasi dengan debugger, Hot Reload berfungsi dengan sebagian besar kerangka kerja aplikasi, termasuk jenis aplikasi umum seperti Console, Formulir Windows (WinForms), WPF, UWP, WinUI 3* dan sebagian besar jenis proyek web ASP.NET (untuk pengeditan kode di belakang) termasuk ASP.NET MVC, WEB API, dan bahkan proyek Web Forms yang lebih lama. Daftar ini juga hanyalah contoh. Jawaban nyatanya adalah di mana saja Anda memiliki .NET dan Anda menggunakan debugger terkelola Visual Studio, Anda harus mendapatkan dukungan Hot Reload dasar.

Ini berarti bahwa bahkan proyek seperti Azure Functions akan bekerja dengan baik dalam skenario ini. Kami mendorong Anda untuk mencoba kombinasi Anda dan memberi tahu kami jika Anda menemukan masalah.

*WinUI 3 secara default menggunakan debugging mode campuran yang tidak mendukung Hot Reload. Anda dapat mengubahnya di pengaturan proyek dengan mengaktifkan Debugger Terkelola yang akan memungkinkan Hot Reload berfungsi dengan baik.

Saat menggunakan Visual Studio 2022 dengan aplikasi .NET, tetapi tidak menggunakan debugger

Hot Reload sekarang tersedia tanpa debugger saat menargetkan sebagian besar jenis aplikasi .NET 6, termasuk jenis proyek seperti Console, WPF, Formulir Windows (WinForms), ASP.NET Core MVC, Web API, dan Blazor. Kami tahu beberapa pengembang memiliki alasan atau preferensi yang baik untuk memulai aplikasi mereka tanpa debugger dan kami berharap fitur tambahan ini akan memberi mereka nilai sedikit atau tidak berdampak pada waktu startup.

Fitur ini eksklusif untuk .NET 6+ dan aplikasi yang tidak menargetkan .NET 6 (.NET 5 atau di bawahnya) tidak akan mendukung skenario "tidak ada debugger" dan harus menggunakan debugger untuk mendapatkan akses ke fungsionalitas Hot Reload.

Perlu diketahui juga bahwa tidak semua jenis proyek akan didukung untuk skenario "tanpa debugger" dalam rilis pertama kami. Khususnya:

  • Aplikasi UWP tidak didukung untuk Hot Reload tanpa debugger, ini didesain dan tidak ada rencana saat ini untuk meningkatkan ini.
  • Aplikasi Xamarin.Forms yang menargetkan iOS & Android tidak mendukung .NET Hot Reload (terlepas dari apakah Anda memulai aplikasi Anda dengan atau tanpa debugger), tetapi akan terus mendukung XAML Hot Reload
  • Aplikasi .NET MAUI di masa mendatang tidak akan mendukung skenario tanpa debugger, tetapi akan mendukung .NET Hot Reload melalui debugger

Saat menggunakan Visual Studio 2022 dengan aplikasi .NET 6, jenis skenario terbanyak didukung

Pengembang yang dapat menggunakan Visual Studio 2022 dan mengerjakan aplikasi yang menargetkan .NET 6 akan mendapatkan manfaat dari pengalaman Hot Reload yang paling dipolihkan dan mampu.

Sorotan dari apa yang didukung:

  • Aplikasi Blazor (Server dan WebAssembly*)
  • Pengeditan file Razor di situs web Blazor dan ASP.NET Core reguler
  • CSS Hot Reload
  • Kemampuan untuk mendapatkan dukungan Hot Reload saat menjalankan aplikasi tanpa debugger (seperti yang dijelaskan di atas secara lebih rinci)

Pengembang yang menargetkan .NET 6 akan terus mendapatkan lebih banyak peningkatan dalam pembaruan Visual Studio 2022 mendatang dan band fitur .NET dan rilis utama. Kami baru saja memulai!

*Di Visual Studio 2022 GA merilis dukungan Hot Reload untuk Blazor WebAssembly saat menggunakan debugger Visual Studio belum diaktifkan. Anda masih bisa mendapatkan Hot Reload Jika memulai aplikasi melalui Visual Studio tanpa debugger, dan kami berupaya mengatasinya di pembaruan Visual Studio di masa mendatang.

Skenario inti ASP.NET yang didukung

Pengalaman Hot Reload dasar sekarang didukung secara luas untuk banyak skenario ASP.NET. Fitur yang paling tersedia secara luas adalah kemampuan untuk mengubah code-behind dan file kelas .NET lainnya untuk sebagian besar jenis aplikasi web. Fitur ini berfungsi saat menggunakan Visual Studio debugger dan ada di mana saja Edit dan Lanjutkan sebelumnya tersedia.

Bagi pengembang ASP.NET Core yang menargetkan .NET 6 ada kemampuan tambahan yang tidak tersedia untuk versi .NET yang lebih rendah, ini termasuk peningkatan seperti:

  • CSHTML: Mengedit file Razor CSHTML sekarang mendukung banyak jenis pengeditan.
  • Refresh Browser: Mengedit file pisau cukur sekarang akan secara otomatis menyegarkan perubahan di browser web Anda saat penelusuran kesalahan. Ini sebelumnya hanya tersedia saat memulai aplikasi tanpa debugger.
  • CSS Hot Reload: Sekarang dimungkinkan untuk mengubah file CSS saat aplikasi sedang berjalan, dan perubahan akan segera diterapkan ke aplikasi yang sedang berjalan saat Anda mengetik.
  • Tidak Ada Debugger: Anda sekarang akan mendapatkan dukungan Hot Reload saat menggunakan Visual Studio untuk memulai aplikasi web Anda tanpa debugger (CTRL-F5).

Catatan: Saat mengerjakan aplikasi Blazor Wasm dan menggunakan Visual Studio 2022 (17.0), Hot Reload untuk halaman razor hanya berfungsi saat meluncurkan aplikasi tanpa debugger. Kami akan menambahkan dukungan debugger dalam pembaruan mendatang.

Pengeditan .NET yang Didukung

Pengalaman .NET Hot Reload didukung oleh mekanisme Edit dan Lanjutkan dan kami telah melakukan penyempurnaan untuk mendukung jenis pengeditan tambahan yang melampaui apa yang awalnya mungkin di versi sebelumnya. Peningkatan meliputi:

  • Menambahkan, memperbarui, atau menghapus Atribut Kustom
  • Menambahkan atau memperbarui struktur Rekaman
  • Menambahkan atau memperbarui arahan #line
  • Mengedit ekspresi Switch
  • Mengedit file dengan arahan #line, termasuk perubahan pada arahan itu sendiri
  • Mengedit pernyataan tingkat atas
  • Mengedit kode yang menggunakan salah satu fitur C# 10 baru, seperti global menggunakan direktif, namespace cakupan file, lambda yang ditingkatkan, dan konstruktor struct tanpa parameter
  • Mengganti nama parameter Lambda
  • Mengganti nama parameter metode yang ada

Peningkatan di atas tersedia untuk Hot Reload dan pengalaman Edit dan Lanjutkan.

Pembaruan Tambahan

  • Hot Reload dan Edit dan Lanjutkan dengan beberapa proses: Sekarang dimungkinkan untuk dengan andal menggunakan Hot Reload dan Edit dan Lanjutkan pengalaman ketika dilampirkan ke beberapa proses. Sebelumnya kemampuan ini tidak sepenuhnya didukung dan tidak selalu berfungsi dengan baik, ini sekarang telah diperbaijikan.
  • Pesan kesalahan/peringatan yang diperbarui: Kami telah memperbarui banyak pesan kesalahan/peringatan agar lebih jelas saat pesan berlaku untuk EnC dan Hot Reload. Kami melakukan ini dengan membuat pesan lebih umum sehingga terminologi edit dan lanjutan tidak digunakan selama operasi Isi Ulang Panas
  • Pengujian Unit yang Lebih Cepat dari aplikasi .NET: Teknologi Hot Reload sekarang dapat digunakan sebagai fitur eksperimental untuk mempercepat pengujian unit saat menargetkan .NET 6. Untuk informasi selengkapnya, lihat bagian pengujian catatan rilis ini

Skenario .NET yang tidak didukung

Bahkan dalam rilis akhir masih akan ada beberapa skenario yang tidak didukung yang harus Anda waspadai:

  • Aplikasi Xamarin.Forms tidak akan mendukung .NET Hot Reload dalam skenario iOS dan Android. Anda akan mendapatkan beberapa Hot Reload saat menargetkan aplikasi UWP. Ini sudah didesain, dan kami tidak berharap untuk melakukan perbaikan lebih lanjut. (Catatan: XAML Hot Reload akan terus tersedia dan didukung untuk pelanggan Xamarin.Forms pada SDK terbaru)
  • Aplikasi .NET MAUI tidak didukung dalam rilis ini, untuk bekerja dengan .NET MAUI dan Hot Reload, silakan lihat Catatan rilis Pratinjau 1 Pratinjau 1 Visual Studio 2022 untuk detailnya.
  • Aplikasi yang dibuat menggunakan F# atau yang menargetkan .NET Native tidak akan mendukung Hot Reload.

Produktivitas .NET

Pemfaktoran ulang namespace sinkronisasi sekarang tersedia di menu (klik kanan) proyek atau folder di Penjelajah Solusi, memungkinkan Anda untuk dengan mudah menyinkronkan namespace agar sesuai dengan struktur folder Anda.

Sync namespaces from Solution Explorer

Konfigurasi analisis kode latar belakang sekarang tersedia di menu Penjelajah Solusi (klik kanan). Klik kanan pada node solusi di Penjelajah Solusi dan pilih Analisis dan Pembersihan Kode. Selanjutnya, pilih Atur Cakupan Analisis untuk mengonfigurasi cakupan analisis kode latar belakang.

  • Sekarang ada pemfaktoran ulang yang memperkenalkan parameter yang akan memindahkan ekspresi dari implementasi metode ke pemanggilnya dengan menambahkan parameter baru. Letakkan kursor Anda pada baris yang berisi ekspresi atau sorot ekspresi. Tekan (Ctrl+.) untuk memicu menu Tindakan Cepat dan Pemfaktoran Ulang. Pilih Perkenalkan parameter untuk{0}atau Perkenalkan parameter untuk semua kemunculan {0}. Kedua opsi akan memiliki tiga opsi flyout untuk memasukkan ekspresi yang diperbarui di semua situs panggilan, (2) mengekstrak dan membuat metode baru yang mengembalikan ekspresi dan menambahkan argumen di situs panggilan, atau (3) membuat kelebihan beban metode yang berisi ekspresi dan panggilan pada metode asli.

Introduce parameter from Quick Actions menu

  • Ada perintah baru yang disebut Lacak Sumber Nilai yang memungkinkan Anda melakukan analisis aliran data untuk menentukan bagaimana nilai tertentu mungkin telah diteruskan pada titik tertentu dan di mana nilai tersebut mungkin diteruskan. Klik kanan pada anggota tertentu dan pilih Lacak Sumber Nilai dari menu klik kanan.

Track value source in right click menu

  • Jendela Pelacakan Nilai akan terbuka yang memungkinkan Anda menganalisis hasil:

Track Value Source Window

  • Kami menambahkan opsi untuk menggaris bawahi variabel yang ditetapkan ulang. Ini nonaktif secara default sehingga Anda harus mengaktifkannya di Alat > Opsi > Editor > Teks C# atau Tingkat Lanjut Dasar > dan pilih Garis Bawah menetapkan ulang variabel.

Underline reassigned variables in Editor

  • Kami menambahkan opsi pencarian dalam dialog Hasilkan Penggantian, memungkinkan Anda untuk dengan cepat mencari dan memilih anggota untuk mengambil alih.

Search in Generate Overrides Dialog

  • Info Cepat untuk tag kode> XML <sekarang mempertahankan spasi kosong dan blok CDATA. Arahkan kursor Anda ke elemen . Info Cepat kemudian akan menampilkan gaya yang didukung dari komentar XML di atas kode Anda.

Quick Info for XML preserves whitespace

  • Jendela Temukan semua Referensi sekarang akan mengelompokkan proyek multi-target yang membantu mengurangi kebisingan visual.

Find All Reference Groups Multi-Targeted Projects

  • Sekarang ada pemfaktoran ulang yang menghapus jenis berulang di Visual Basic.
  • Buka Implementasi tidak akan lagi menavigasi ke anggota dengan deklarasi abstrak yang juga ditimpa.

Alat Bahasa C#

Dalam C# 8.0 kami memperkenalkan jenis referensi nullable yang memungkinkan Anda untuk menyatakan apakah null diharapkan. Untuk menggunakan jenis referensi nullable, Anda perlu menambahkan <Nullable>elemen aktifkan</Nullable> ke file proyek Anda atau menambahkan #nullable mengaktifkan pragma ke setiap file sumber dalam proyek Anda. Untuk membantu menyederhanakan proses ini, kami sekarang secara otomatis menyertakan pengaktifan <Nullable></Nullable> untuk proyek .NET baru.

Di C# 10.0 kami memperkenalkan namespace layanan cakupan file yang memberi Anda opsi untuk tidak menumpuk definisi kelas dalam namespace. Kami sekarang memiliki pemfaktoran ulang untuk mengonversi namespace ke namespace yang dicakup file. Untuk menggunakan namespace layanan dengan cakupan file, Anda harus terlebih dahulu menambahkan <LangVersion>elemen pratinjau</LangVersion> ke file proyek Anda. Selanjutnya, letakkan kursor Anda di namespace. Tekan (Ctrl+.) untuk memicu menu Tindakan Cepat dan Pemfaktoran Ulang. Pilih Konversi ke namespace cakupan file.

File-scoped namespace refactoring

Sekarang ada pemfaktoran ulang yang lebih disukai is not nullis object ketika diterapkan ke jenis nilai. Untuk menggunakan pemfaktoran ulang baru ini, letakkan kursor Anda pada pemeriksaan jenis. Tekan (Ctrl+.) untuk memicu menu Tindakan Cepat dan Pemfaktoran Ulang. Pilih Pilih pemeriksaan null atas pemeriksaan jenis.

Menavigasi ke sumber yang didekompresi

Navigasi ke Sumber yang Didekompilasi sekarang di sekarang secara default memungkinkan Anda menavigasi ke deklarasi jenis pustaka. Navigasi ke Sumber yang Didekompilasi tersedia saat Anda memanggil Buka Definisi pada simbol pustaka di kode sumber Anda dan pada sumber yang didekompilasi.

Penyempurnaan Editor

Komentar XML sekarang akan secara otomatis menghasilkan <exception> tag dalam tag yang <summary> memungkinkan Anda menambahkan deskripsi ketika metode secara eksplisit melemparkan pengecualian.

Di Visual Studio 2019 kami merilis Inheritance Margin yang menambahkan ikon ke margin yang mewakili implementasi dan penimpaan kode Anda. Mengklik ikon margin pewarisan akan menampilkan opsi pewarisan yang dapat Anda pilih untuk menavigasi. Dalam rilis ini Margin Warisan diaktifkan secara default. Untuk menonaktifkan Margin Warisan, buka Opsi>Alat>Editor>Teks C# atau Tingkat Lanjut Dasar>dan batal pilih Aktifkan Margin Warisan.

Inheritance Margin

Bahasa Pemrograman

C# 10

  • Rekam struktur dan with ekspresi pada struktur (record struct Point(int X, int Y);, var newPoint = point with { X = 100 };).
  • Global menggunakan direktif: global using arahan menghindari mengulangi arahan yang sama using di banyak file dalam program Anda.
  • Penugasan pasti yang ditingkatkan: penetapan pasti dan analisis nullability lebih baik menangani pola umum seperti dictionary?.TryGetValue(key, out value) == true.
  • String interpolasi konstanta: string interpolasi yang terdiri dari konstanta adalah konstanta mereka sendiri.
  • Pola properti yang diperluas: pola properti memungkinkan akses anggota berlapis (if (e is MethodCallExpression { Method.Name: "MethodName" })).
  • ToString rekaman tersegel: rekaman dapat mewarisi rekaman dasar dengan disegel ToString.
  • Generator sumber bertambah bertahap: meningkatkan pengalaman pembuatan sumber dalam proyek besar dengan memecah alur pembuatan sumber dan penembolokan hasil perantara.
  • Dekonstruksi campuran: penugasan dekonstruksi dan dekonstruksi-deklarasi dapat dicampur bersama-sama ((existingLocal, var declaredLocal) = expression).
  • AsyncMethodBuilder tingkat metode: AsyncMethodBuilder yang async digunakan untuk mengkompilasi metode dapat diambil alih secara lokal.
  • #line mencakup direktif: izinkan generator sumber seperti Razor kontrol halus dari pemetaan garis dengan #line arahan yang menentukan rentang tujuan (#line (startLine, startChar) - (endLine, endChar) charOffset "fileName").
  • Peningkatan Lambda: atribut dan jenis pengembalian diizinkan pada lambda; lambda dan grup metode memiliki jenis delegasi alami (var f = short () => 1;).
  • Penangan string terinterpolasi: jenis handler string terinterpolasi memungkinkan pemformatan string terinterpolasi yang efisien dalam penugasan dan pemanggilan.
  • Namespace cakupan file: file dengan namespace layanan tunggal tidak memerlukan tanda kurung kurawal atau indentasi tambahan (namespace X.Y.Z;).
  • Konstruktor struct tanpa parameter: mendukung konstruktor tanpa parameter dan penginisialisasi bidang instans untuk jenis struct.
  • CallerArgumentExpression: atribut ini memungkinkan pengambilan ekspresi yang diteruskan ke metode sebagai string.

Lihat status fitur bahasa C# dan perubahan yang melanggar untuk detail selengkapnya.

Razor (ASP.NET Core) Editor

  • Sekarang ada dukungan Hot Reload dalam file Razor.

Reload Support in Razor Files

  • Kami melakukan peningkatan signifikan pada performa pada Razor Editor.

  • Kami meningkatkan pemformatan dan indentasi sehingga lebih andal dan jauh lebih cepat.

  • Kami menambahkan warna Razor baru! Anda dapat mengkustomisasi warna ini di Font dan Warna Lingkungan > Opsi > Alat>.

  • TagHelpers sekarang diwarnai dan memiliki dukungan klasifikasi di tipsalat penyelesaian Info Cepat dan IntelliSense.

TagHelpers Classification Support

  • Kami meningkatkan penyorotan dan navigasi cabang sudut untuk konstruksi Razor.

  • Komentar sekarang memiliki penyelesaian otomatis, indentasi cerdas, penyertaan otomatis kelanjutan komentar, dan navigasi blokir komentar.

Pratinjau Eksperimental Awal Pengujian Jarak Jauh

Kami memiliki pratinjau eksperimental yang sangat awal untuk mengaktifkan pengujian yang berjalan pada lingkungan jarak jauh seperti kontainer linux, WSL, dan melalui koneksi SSH! Meskipun ini adalah kemampuan yang sangat berharga, kami meminta kesabaran Anda karena fitur ini masih dalam keadaan eksperimental yang sangat awal saat kami mengumpulkan umpan balik. Anda mungkin tidak mengalami kelancaran yang biasanya Anda dapatkan karena Anda mungkin membayangkan ada banyak skenario sudut dalam bagaimana kita dapat berkomunikasi dan mengelola lingkungan yang terhubung dari Visual Studio. Berikut adalah beberapa persyaratan untuk menggunakan versi eksperimental pengujian jarak jauh ini:

  • Anda perlu menginstal dependensi yang diperlukan di lingkungan target Anda. Ini berarti jika Anda ingin pengujian yang menargetkan .NET 3.1 berjalan dalam kontainer linux, Anda perlu memastikan kontainer telah menginstal .NET 3.1 melalui Dockerfile Anda. Suatu hari kami ingin menciptakan pengalaman penginstalan yang memungkinkan akuisisi yang lancar dari salah satu dependensi pengujian Anda, tetapi untuk saat ini kami meninggalkan sebagian besar provisi lingkungan hingga spesifikasi pengguna.
  • Rencanakan untuk memantau status koneksi Anda ke lingkungan jarak jauh melalui panel Output-Tests>. Misalnya, jika kontainer dihentikan, pesan akan muncul di panel Output-Tests>. Kami mungkin tidak mendeteksi semua skenario sehingga rencanakan untuk memeriksa output Anda jika sepertinya koneksi hilang. Terutama jika panel Output tidak diatur ke "Uji", Anda mungkin tidak segera melihat pesan. Kami masih bereksperimen dengan model pemberitahuan terbaik ketika koneksi hilang sehingga umpan balik sangat diterima! Jika koneksi hilang, Anda dapat menggunakan drop-down lingkungan pengujian jarak jauh di Test Explorer untuk mengatur koneksi kembali ke lingkungan lokal Anda lalu memilih lingkungan jarak jauh lagi untuk memulai kembali koneksi.
  • Pratinjau eksperimental hanya dilingkup ke pengujian .NET untuk saat ini. Kami menyadari minat untuk mendukung pengalaman pengujian jarak jauh C++ dan kami berharap untuk memberikannya juga pada akhirnya.

Bagaimana cara mencoba pengujian jarak jauh?

  • Dokumen resmi akan tiba setelah periode eksperimental. Untuk saat ini, inilah yang Anda butuhkan untuk mulai mengujinya.
  • Lingkungan ditentukan menggunakan testenvironments.json di akar solusi Anda. Struktur file json mengikuti skema di bawah ini:
{
    "version": "1", // value must be 1
    "environments": [
        { "name": "<unique name>", ... },
        ...
    ]
}
  • Koneksi kontainer lokal
    • Untuk menyambungkan ke kontainer yang berjalan secara lokal, Anda harus memiliki Docker Desktop di komputer lokal Anda. Secara opsional, aktifkan integrasi WSL2 untuk performa yang lebih baik.
    • Untuk Dockerfile, lingkungan dapat ditentukan di testEnvironments.json akar solusi Anda:
          {
          "name": "<name>",
          "localRoot": "<path to local environment>", // optional
          "type": "docker",
          "dockerImage": "<docker image tag>",
          }
      
      Misalnya:
      {
      "version": "1",
      "environments": [
          {
          "name": "linux dotnet-core-sdk-3.1",
          "type": "docker",
          "dockerImage": "testenv"
          }
      ]
      }
      
    • Berikut adalah contoh Dockerfile untuk menjalankan pengujian yang menargetkan .NET 3.1.
      FROM mcr.microsoft.com/dotnet/core/sdk:3.1
      
    • Bangun kontainer Anda menggunakan perintah berikut (termasuk "." di akhir): docker build -t <docker image name> -f <path to Dockerfile> .
  • Koneksi WSL2 lokal
    • Anda harus mengaktifkan integrasi WSL2 di komputer lokal Anda.
    • Lingkungan dapat ditentukan di testEnvironments.json akar solusi Anda mengikuti skema ini:
      {
      "version": "1",
      "environments": [
          {
          "name": "WSL-Ubuntu",
          "type": "wsl",
          "wslDistribution": "Ubuntu"
          }
      ]
      }
      
  • Koneksi SSH
    • Buka Opsi > Alat > Lintas Platform > Pengelola Sambungan untuk menambahkan atau menghapus koneksi SSH. Memilih "Tambahkan" akan memungkinkan Anda memasukkan nama host, port, dan kredensial apa pun yang Anda butuhkan.
    • Lingkungan dapat ditentukan di testEnvironments.json akar solusi Anda dengan yang berikut:
      {
      "version": "1",
      "environments": [
          {
          "name": "ssh-remote",
          "type": "ssh",
          "remoteUri": "ssh://user@hostname:22"
          }
      ]
      }
      
  • Lingkungan aktif dipilih melalui menu drop-down di bilah alat Test Explorer. Saat ini hanya satu lingkungan pengujian yang dapat aktif pada satu waktu.

Remote testing environment drop down in Test Explorer

  • Setelah lingkungan dipilih, pengujian ditemukan dan dijalankan di lingkungan baru.

Tests are discovered and executed in remote environments

  • Anda sekarang dapat menjalankan dan men-debug pengujian Anda di dalam lingkungan jarak jauh!

    View test results from remote environment in the test explorer

  • Test Explorer dapat meminta Anda untuk menginstal beberapa prasyarat lingkungan yang hilang dan mencoba menginstalnya, tetapi pada akhirnya, kami meninggalkan sebagian besar penyediaan lingkungan jarak jauh hingga spesifikasi pengguna.

Hot Reload di Test Explorer [eksperimental]: Sekarang dimungkinkan untuk mencoba fitur eksperimental baru yang mempercepat pengalaman pengujian Anda menggunakan teknologi Hot Reload di belakang layar. Artinya, setelah uji coba pertama Anda di mana build lengkap masih diperlukan, Anda kemudian dapat membuat perubahan kecil, menjalankan pengujian Anda, dan semua pembaruan tersebut akan tercermin tanpa harus melakukan build penuh lagi. Untuk memulai dan mempelajari lebih lanjut peringatan, lihat detail di bawah ini:

Hot reload for the Test Explorer in Visual Studio enables you to run tests without requiring a build between minor edits

  • Pengalaman ini hanya tersedia untuk proyek yang menargetkan .NET 6 dan Anda harus ikut serta dengan membuka 'Uji Opsi > Alat>'

Screenshot of Visual Studio showing enable hot reload option in Tools > Options > Test.

  • Saat opsi ini diaktifkan, pengujian Anda sedang diperbarui bahkan dengan perubahan yang belum disimpan di editor. Kami tidak membangun, sehingga biner pada disk Anda di folder bin Anda kedaluarsa. Ini berarti Anda mungkin melihat perbedaan antara apa yang ada di disk dan hasil pengujian Anda di Visual Studio. Untuk mengatasinya dan sebelum Anda check-in, pastikan Anda melakukan build penuh dengan (Ctrl+Shift+B). Build eksplisit apa pun akan menggantikan hasil pengujian isi ulang panas dengan hasil pengujian build penuh reguler.

  • Ada jenis pengeditan tertentu yang tidak dapat dimuat ulang panas dan dalam kasus tersebut, itu akan default kembali ke perilaku lama untuk melakukan build penuh. Harap dicatat juga bahwa hanya perubahan di Visual Studio yang sedang dilacak, kasus buram di editor seperti mengubah target dapat default kembali ke membutuhkan build penuh.

  • Perubahan besar tertentu (seperti mengganti nama 1000+ nama metode) mungkin membutuhkan waktu lebih lama untuk memuat ulang panas daripada hanya membangun ulang. Dalam kasus ini, pesan akan dicetak dalam output yang meminta pengguna untuk melakukan pembangunan ulang penuh daripada menunggu pemuatan ulang panas.

  • Jejak tumpukan belum tersedia dengan hot reload di Test Explorer. Jika Anda perlu menggunakan pelacakan tumpukan, kami menyarankan Anda untuk melakukan build penuh.

Alat pengujian

  • Tampilkan di Test Explorer (Ctrl+E,S): Tampilkan di Test Explorer adalah kemampuan untuk melompat dari mana kursor Anda berada dalam metode pengujian di editor ke tempat pengujian berada di Test Explorer. Ini mungkin mengingatkan Anda tentang fitur serupa yang disebut Sinkronkan dengan Dokumen Aktif yang membuat dokumen yang sedang Anda kerjakan disorot dalam Penjelajah Solusi. Ini adalah salah satu item terpilih teratas di komunitas Pengembang jadi terima kasih kepada semua yang memilih dan membantu kami memprioritaskan fitur ini! Tampilkan di Test Explorer juga tersedia dari menu klik kanan editor, CodeLens test glyph, dan klik kanan di Penjelajah Solusi.

    Show in Test Explorer from right-click menuShow in Test Explorer from CodeLens

  • Pembaruan dukungan Uji Beban Web dan Pengujian UI Berkode: Perekam uji Beban Web tersedia di Visual Studio 2022. Perekam Uji UI Berkode tidak akan disertakan dalam Visual Studio 2022. Anda masih akan dapat menjalankan pengujian Antarmuka Pengguna Berkode dan membuat pengujian baru dengan menulis kode di Visual Studio 2022, tetapi perekam bergantung pada dependensi 32bit yang tidak layak untuk port. Anda masih dapat menginstal Visual Studio 2019 secara berdampingan untuk menggunakan perekam UI Berkode. Sebagai pengingat, Uji Beban Web dan Uji UI Berkode ditolak pada tahun 2019 dan kami berencana untuk menghapusnya dari produk ketika kami dapat meminimalkan dampaknya kepada pengguna. Kami sangat mendorong pengguna yang tertarik dengan pengujian UI web untuk mengadopsi kerangka kerja pengujian web playwright lintas platform dan sumber terbuka baru. Selain mendukung semua browser utama dan penanganan kode asinkron yang jauh lebih baik, Playwright juga memiliki fungsionalitas perekaman pengujian bawaan.

Lokasi Tepercaya

  • Sebagai bagian dari pembenahan "Kepercayaan Pengaturan", kami menghapus pemeriksaan "Tanda web" dan menambahkan dialog peringatan yang ditampilkan saat mencoba membuka kode (misalnya file, proyek, atau folder) yang sebelumnya belum dipercaya
  • Kode sekarang dapat dipercaya di folder atau lokasi folder induk saat ini
  • Proyek yang dibuat oleh pengguna ditambahkan secara otomatis ke daftar lokasi tepercaya pengguna
  • Anda dapat melewati pemeriksaan kepercayaan untuk lokasi sementara yang dibuat oleh fungsionalitas Visual Studio

Sebelum konten (misalnya, solusi, proyek, file, atau folder) dibuka di dalam IDE, kami akan memverifikasi apakah lokasi folder telah dipercaya sebelumnya.

Jika kode yang tidak tepercaya terdeteksi, kami akan menampilkan dialog peringatan yang memberi tahu Anda tentang implikasi keamanan dan meminta Anda untuk mempercayai kode sebelum operasi IDE normal.

Catatan: Meskipun fitur ini saat ini dinonaktifkan secara default, fitur ini dapat diaktifkan melalui Options > Trust Pengaturan > Requre keputusan kepercayaan sebelum membuka konten

Pembaruan Node Sumber Eksternal

Simpul Sumber Eksternal di Penjelajah solusi sekarang juga memiliki dukungan C++. Selain itu, kami telah menambahkan sub-simpul baru yang memberi Anda semua modul dengan simbol belum dimuat.

External Sources node in Solution explorer supports C++

Anda juga dapat menggunakan menu konteks klik kanan untuk memuat simbol langsung dari penjelajah solusi sehingga modul dapat muncul di simpul sumber eksternal. File simpul Sumber Eksternal juga diurutkan menurut abjad sekarang.

External Sources menu

Ikonografi yang diperbarui dan disegarkan

  • Sebagai bagian dari tujuan kami untuk menyegarkan antarmuka pengguna untuk Visual Studio 2022, Anda akan menemukan ikon yang baru disegarkan dan diperbarui di seluruh IDE berdasarkan konsistensi, legibilitas, dan keakraban.

Examples of new icons with dark and light backgrounds

XAML Hot Reload

Kami telah memperbarui pengaturan XAML Hot Reload dan toolbar dalam aplikasi untuk memberikan kejelasan bahwa pengaturan dan dalam pengalaman aplikasi terkait dengan XAML Hot Reload dan bukan .NET Hot Reload.

Updated in-app toolbar in XAML apps

Kami juga telah menyederhanakan panel pengaturan untuk mengatur opsi umum dengan lebih baik bersama-sama.

Updated XAML Settings options panel

Pratinjau Langsung XAML

XAML Live Preview sekarang tersedia untuk pengembang WPF, UWP, WinUI, dan Xamarin.Forms yang menjalankan aplikasi mereka di Android Emulator atau sebagai aplikasi desktop UWP. Pratinjau Langsung mengambil antarmuka pengguna aplikasi yang sedang berjalan dan membawanya ke jendela yang ditampar dalam Visual Studio. Ini memudahkan penggunaan XAML Hot Reload untuk mengubah aplikasi sambil melihat perubahan tersebut di dalam Visual Studio itu sendiri, tanpa perlu tab bolak-balik antara aplikasi yang sedang berjalan dan Visual Studio sambil membuat perubahan kode XAML langsung.

Live Preview of XAML Desktop Apps UI

Memulai:

  • Memulai aplikasi yang didukung menggunakan debugger
  • Aktifkan Pratinjau Langsung XAML, baik melalui pencarian cepat dengan mengetik "Pratinjau Langsung XAML" atau menggunakan tombol "Tampilkan di Pratinjau Langsung XAML" di dalam aplikasi

Setelah pengalaman dimulai, fitur berikut akan tersedia:

  • Menggulir dan Memperbesar: Anda dapat menggeser dan memperbesar jendela yang menangkap UI aplikasi, ini memungkinkan Anda membuatnya sesuai dengan kebutuhan Anda untuk menampilkan aplikasi lengkap atau hanya bagian yang ingin Anda edit. Panning dan scrolling bekerja dengan touch pad (dua jari menggulir), roda gulir mouse atau CTRL + Klik untuk menyeret konten.
  • Penggaris: Anda dapat menambahkan satu atau beberapa penggaris horizontal/vertikal untuk melapisi aplikasi yang sedang berjalan. Garis-garis ini kemudian dapat dipindahkan ke posisi menggunakan mouse atau keyboard. Saat memindahkan penggaris dengan keyboard, gunakan tombol panah untuk penempatan yang tepat dan tombol Ctrl + panah untuk posisi cepat. Anda juga dapat menghapus penggaris dengan memilihnya (mengkliknya) dan menekan tombol hapus.
  • Pemilihan Elemen & tips info: Dengan pemilihan elemen, Anda dapat memilih elemen XAML yang ingin Anda edit menggunakan fitur yang sama dengan yang mungkin Anda gunakan dari Live Visual Tree atau toolbar dalam aplikasi. Setelah dipilih, Anda juga dapat mengaktifkan fitur 'tips info' baru untuk mendapatkan informasi tambahan tentang elemen yang dipilih seperti font, warna, info margin/padding, dan lainnya. Saat menggunakan Pemilihan Elemen, pertimbangkan untuk mengaktifkan Pratinjau Item yang Dipilih - baik melalui tombol toolbar Live Visual Tree atau pengaturan > Opsi Debug > Hot Reload - untuk membuka XAML sumber.
  • Pengalihan Windows: Anda dapat mengontrol jendela aplikasi mana yang diambil.

Pengalaman pengikatan XAML yang ditingkatkan

  • Ikon pengikatan data yang disempurnakan di Pemeriksa Properti. Sekarang Anda dapat dengan cepat mengakses Dialog Pengikatan Data dengan mengklik ikon "silinder" di samping properti, dan Anda dapat menghapus pengikatan dengan mengklik ikon 'x".

Binding icons in Property Inspector

  • Menambahkan tab Pengikatan di Tindakan Cepat sehingga Anda dapat membuat pengikatan hanya dengan beberapa klik dari perancang XAML.

Binding tab in Quick Actions

  • Menambahkan kotak kombo Properti Target ke Dialog Pengikatan Data untuk memilih properti saat bepergian.

Updated Data Binding Dialog with Target Property combo box

Masalah teratas yang dipilih dari komunitas pengembang

Silakan lihat daftar lengkap perbaikan Komunitas Pengembang kami dalam rilis ini.


Masalah yang Diketahui

Lihat semua masalah terbuka dan solusi yang tersedia di Visual Studio 2022 dengan mengikuti tautan di bawah ini.

Umpan balik dan saran

Kami ingin mendengar pendapat Anda! Anda dapat Melaporkan Masalah atau Menyarankan FiturFeedback Icon dengan menggunakan ikon Kirim Umpan Balik di sudut kanan atas penginstal atau IDE Visual Studio, atau dari Bantuan > Kirim Umpan Balik. Anda bisa melacak masalah dengan menggunakan Visual Studio Developer Community, tempat Anda menambahkan komentar atau mencari solusi. Anda juga bisa mendapatkan bantuan pemasangan gratis melalui dukungan Live Chat kami.


Blog

Manfaatkan wawasan dan rekomendasi yang tersedia di situs Blog Alat Pengembang untuk memberi Anda informasi terbaru tentang semua rilis baru dan sertakan postingan mendalam tentang berbagai fitur.


Bagian Atas Halaman