Catatan 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
- 11 Juli 2023 — Visual Studio 2022 versi 17.0.23
- 13 Juni 2023 — Visual Studio 2022 versi 17.0.22
- 11 April 2023 — Visual Studio 2022 versi 17.0.21
- 14 Maret 2023 — Visual Studio 2022 versi 17.0.20
- 14 Februari 2023 — Visual Studio 2022 versi 17.0.19
- 10 Januari 2023 — Visual Studio 2022 versi 17.0.18
- 13 Desember 2022 — Visual Studio 2022 versi 17.0.17
- 8 November 2022 — Visual Studio 2022 versi 17.0.16
- 11 Oktober 2022 — Visual Studio 2022 versi 17.0.15
- 13 September 2022 — Visual Studio 2022 versi 17.0.14
- 9 Agustus 2022 — Visual Studio 2022 versi 17.0.13
- 12 Juli 2022 — Visual Studio 2022 versi 17.0.12
- 14 Juni 2022 — Visual Studio 2022 versi 17.0.11
- 10 Mei 2022 — Visual Studio 2022 versi 17.0.10
- 19 April 2022 — Visual Studio 2022 versi 17.0.9
- 12 April 2022 — Visual Studio 2022 versi 17.0.8
- 8 Maret 2022 — Visual Studio 2022 versi 17.0.7
- 8 Februari 2022 — Visual Studio 2022 versi 17.0.6
- 13 Januari 2022 — Visual Studio 2022 versi 17.0.5
- 16 Desember 2021 — Visual Studio 2022 versi 17.0.4
- 14 Desember 2021 — Visual Studio 2022 versi 17.0.3
- 30 November 2021 — Visual Studio 2022 versi 17.0.2
- 16 November 2021 — Visual Studio 2022 versi 17.0.1
- 08 November 2021 — Visual Studio 2022 versi 17.0.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:
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.
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.
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
- Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-28260 .NET Kerentanan ada di .NET yang berjalan di Windows di mana DLL runtime dapat dimuat dari lokasi yang tidak terduga, menghasilkan eksekusi kode jarak jauh.
- Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-28296 Visual Studio
- Kerentanan Spoofing Visual Studio CVE-2023-28299
- CVE-2023-28262 Visual Studio Elevation of Privilege Vulnerability
- Kerentanan Pengungkapan Informasi Visual Studio CVE-2023-28263
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
- Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-22490 Mingit
- CVE-2023-22743 Git untuk Windows Installer Elevation of Privilege Vulnerability
- CVE-2023-23618 Git untuk Kerentanan Eksekusi Kode Jarak Jauh Windows
- Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-23946 Mingit
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
CVE-2023-21566 Visual Studio Installer Elevation of Privilege Vulnerability
Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-21808 .NET dan Visual Studio
Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-21815 Visual Studio
Kerentanan Eksekusi Kode Jarak Jauh CVE-2023-23381 Visual Studio Code
CVE-2022-41903 Heap overflow di
git archive
,git log --format
yang mengarah ke RCECVE-2022-41953 Git GUI Kloning Kerentanan Eksekusi Kode Jarak Jauh
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.
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.
Visual Studio 2022 versi 17.0.16
dirilis 8 November 2022
Masalah yang ditangani dalam rilis 17.0.16 ini
Saran Keamanan Ditangani
- CVE-2022-41119 Remote Code Execution Heap Overflow Vulnerbaility di Visual Studio
- CVE-2022-39253 Pengungkapan Informasi Pengungkapan Klon lokal dereferensi pengoptimalan tautan simbolis secara default
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.
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.
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
- Kerentanan Pengungkapan Informasi CVE-2022-34716 .NET Kerentanan pengungkapan informasi ada di .NET 6.0 dan .NET Core 3.1 yang dapat menyebabkan akses informasi istimewa yang tidak sah.
- Git Eksekusi Kode Jarak Jauh CVE-2022-31012 untuk penginstal Windows dapat ditipu untuk menjalankan biner yang tidak tepercaya
- CVE-2022-29187 Elevation of Privilege Malicious pengguna dapat membuat direktori .git di folder yang dimiliki oleh pengguna super
- CVE-2022-35777 Eksekusi Kode Jarak Jauh Visual Studio 2022 Pratinjau Fbx File parser Heap overflow Kerentanan
- CVE-2022-35825 Eksekusi Kode Jarak Jauh Visual Studio 2022 Pratinjau Fbx File parser Kerentanan OOBW
- CVE-2022-35826 Eksekusi Kode Jarak Jauh Visual Studio 2022 Pratinjau Fbx File parser Heap overflow Kerentanan
- CVE-2022-35827 Eksekusi Kode Jarak Jauh Visual Studio 2022 Pratinjau Fbx File parser Heap OOBW Kerentanan
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.
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.
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.
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'.
Visual Studio 2022 versi 17.0.8
dirilis 12 April 2022
Masalah yang Ditangani dalam rilis 17.0.8 ini
- Memperbaiki masalah yang akan menyebabkan beberapa animasi untuk eksekusi pengujian berjalan di latar belakang bahkan ketika eksekusi pengujian terkait selesai. Hal ini menyebabkan perlambatan yang sangat terlihat pada monitor kecepatan refresh tinggi. Perbaikan harus meningkatkan pengalaman menggunakan VS pada monitor kecepatan refresh tinggi.
- Mengatasi masalah di mana Visual Studio akan menggantung/membeku saat menggunakan TFVC untuk jangka waktu yang lama (lebih dari satu jam).
- Menambahkan baris perintah alat penginstal untuk menghapus saluran yang tidak digunakan.
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.
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.
- Perlambatan UI VS yang masif dan dapat direproduksi dengan kecepatan refresh monitor 300hz
- VSSDK: VS 17.1.0 Pratinjau 5.0 macet setelah IVsObjectManager.UnregisterLibMgr()
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.
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 Pengaturan Pembaruan.
- 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
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.
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.
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.
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.
- Bug di Visual studio 2022 + Xamarin + SignalR (metode tidak ditemukan)
- HtmlLanguageClient: HtmlLanguageClient gagal diinisialisasi. Pratinjau Microsoft Visual Studio Community 2022 (64-bit) Versi 17.0.0 Pratinjau 5.0
- Hal-hal aneh terjadi dalam pengeditan css dalam file .razor (Blazor)
- Di halaman blazor (*.razor) menambahkan titik koma ke baris kode c# menyebabkan kursor melompat
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.
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 CMakeSettings yang macet 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.
- Tidak mungkin untuk mencari pada pilihan jika bagian dari satu baris dipilih Visual Studio 2022
- Penyelesaian Blazor C# terkadang dapat menunjukkan informasi yang salah
- PackageId:AndroidImage_x86_API25_Private; PackageAction:Install; ReturnCode:3;
- Ctrl-F3 terkadang melompat ke atas dokumen
- Ctrl-f3 telah mengubah perilaku dari visual studio 2019 ke visual studio 2022
- Visual Studio 2022 Test Explorer selalu menampilkan pengujian sebagai "Tidak Dijalankan"
- Intellisense dalam komponen pisau cukur blazor
- Visual Studio 2022 menampilkan ikon tambahkan/hapus yang salah di pohon kontrol sumber
- VS 2022 IntelliSense memakan waktu cukup lama atau bahkan tidak akan muncul dalam beberapa skenario.
- Intellisense dalam file Razor (.cshtml) masih belum berfungsi di VS 2022
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.
- Profiler Visual Studio 2022 tidak memberikan informasi apa pun tentang kode yang difilterkan
- Tampilan .diagsession Profiler Performa Membeku pada Pengubahan Ukuran Panel
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.
- 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.
- Menambahkan navigasi subkata
- Simpan otomatis sekarang tersedia sebagai fitur pratinjau
- Pengalaman salin/tempel multi-caret
- 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:- Simpan umpan nuget in-org untuk memulihkan paket nuget.
- 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
- Dukungan multi-repo di bawah bendera pratinjau untuk Solusi apa pun yang mencakup repositori yang berbeda (yaitu Solusi dengan proyek yang dihosting di repositori Git yang berbeda)
- Terbitkan ke Azure DevOps sekarang didukung penuh dalam pengalaman membuat repositori git
- Penyempurnaan bilah status termasuk kemampuan baru untuk melihat dan membuka repositori dari VS kosong dan menampilkan jumlah penerapan yang tidak terurai
- Menu luapan pada jendela Perubahan Git sekarang tersedia untuk repositori lokal saja dengan operasi git tambahan
- Toolbar Diff Terpadu yang berisi jumlah baris yang ditambahkan/dihapus dan opsi konfigurasi yang dapat ditemukan
- Menerapkan peningkatan detail termasuk UI yang lebih responsif dan ramah pengguna
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.
- 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
- Seluruh penyelesaian baris memprediksi potongan kode C# Anda berikutnya berdasarkan konteks Anda saat ini, dan menyajikannya sebagai saran sebaris di sebelah kanan kursor Anda.
- Penyelesaian seluruh baris 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
- 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
- C#10
- 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
- Pratinjau eksperimental yang sangat awal untuk mengaktifkan pengujian yang berjalan pada lingkungan jarak jauh seperti kontainer linux, WSL, dan melalui koneksi SSH.
- 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 TestSettings baru dan editor TestSettings. Uji coba masih akan dapat menggunakan file TestSettings, namun TestSettings diganti dengan RunSettings 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. 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.
- Kami telah mengubah fungsionalitas "Pengaturan Kepercayaan" 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.
- 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 Connected 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 Connected Services 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
danMicrosoft.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 Changes - Perubahan kecil pada toolbar dan pengaturan dalam aplikasi
- 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
- Penyebaran Xamarin iOS gagal setelah pembaruan iOS 15
- Pengecualian Desainer Android di utas "utama" java.lang.NullPointerException
- Penyebaran iOS gagal di VS 2022
- Android Device Manager tidak memiliki perangkat dasar apa pun yang tersedia
- Aplikasi iOS "Gagal diinstal" pada simulator jarak jauh
- Halaman properti Proyek iOS tradisional gagal membuka "Pengecualian referensi null objek"
- Gagal membuat arsip untuk Xamarin iOS
- Gagal menyebarkan ke iPhone, Kesalahan MT1001: Tidak dapat menemukan aplikasi di direktori yang ditentukan
Python Tooling
- Python Profiler gagal diluncurkan karena fitur belum ditambahkan
- Memilih "Python (Terbaru)" saat membuat lingkungan Conda menampilkan "Python Versi 0.0"
- Kesalahan formatter keluar dengan 'hitam' dan 'autopep8' dengan "Mode patch tidak valid '' di: Tidak ada baris baru di akhir file". Pekerjaan cepat adalah menambahkan baris baru ke akhir file dan 'hitam dan 'autopep8' akan memformat dengan benar
- Perintah proyek web Django (migrasi, buat, periksa, dll.) kesalahan saat ini
- Penyelesaian Django dalam file HTML tidak berfungsi
- Mode interaktif IPython tidak berfungsi pada Python 3.9
- Bahkan jika modul berhasil diinstal, peringatan akan tetap ditampilkan dalam output. Pekerjaan cepat adalah menutup dan membuka kembali solusi VS
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'.
- 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.
- 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.
- 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.
Peningkatan Breakpoint Gutter
Kami menambahkan breakpoint glyph baru untuk menunjukkan lokasi di mana pengguna dapat mengatur titik henti.
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.
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.
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.
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.
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.
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.
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.
Simpan otomatis
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.
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.
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:
- Properti ShowNotificationOnInitializeFailed - Properti Boolean yang akan menentukan apakah server bahasa ingin kami menampilkan gelembung untuk memberi tahu pengguna tentang kegagalan seperti ini:
Rekomendasinya adalah mengatur properti ini ke true hanya jika kegagalan secara drastis memengaruhi pengalaman pengguna untuk proyek yang saat ini mereka kerjakan.
- 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.
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
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".
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.
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.
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.
- 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.
- Jendela Pelacakan Nilai akan terbuka yang memungkinkan Anda menganalisis hasil:
- 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.
- Kami menambahkan opsi pencarian dalam dialog Hasilkan Penggantian, memungkinkan Anda untuk dengan cepat mencari dan memilih anggota untuk mengambil alih.
- 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.
- Jendela Temukan semua Referensi sekarang akan mengelompokkan proyek multi-target yang membantu mengurangi kebisingan visual.
- 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.
Sekarang ada pemfaktoran ulang yang lebih disukai is not null
is 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.
Bahasa Pemrograman
- 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 samausing
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.
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.
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:
Misalnya:{ "name": "<name>", "localRoot": "<path to local environment>", // optional "type": "docker", "dockerImage": "<docker image tag>", }
{ "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.
- Setelah lingkungan dipilih, pengujian ditemukan dan dijalankan di lingkungan baru.
Anda sekarang dapat menjalankan dan men-debug pengujian Anda di dalam lingkungan jarak jauh!
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:
- Pengalaman ini hanya tersedia untuk proyek yang menargetkan .NET 6 dan Anda harus ikut serta dengan membuka 'Uji Opsi > Alat>'
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.
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 "Pengaturan Kepercayaan", 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 Pengaturan Kepercayaan > Opsi > Mengumpulkan 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.
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.
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.
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.
Kami juga telah menyederhanakan panel pengaturan untuk mengatur opsi umum dengan lebih baik bersama-sama.
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.
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".
- Menambahkan tab Pengikatan di Tindakan Cepat sehingga Anda dapat membuat pengikatan hanya dengan beberapa klik dari perancang XAML.
- Menambahkan kotak kombo Properti Target ke Dialog Pengikatan Data untuk memilih properti saat bepergian.
Masalah teratas yang dipilih dari komunitas pengembang
Silakan lihat daftar lengkap perbaikan Komunitas Pengembang kami dalam rilis ini.
- Pemformatan C++ yang salah saat
Place 'else' on a new line
dinonaktifkan. - Dialog Dibekukan saat Edit dan Lanjutkan Memeriksa Pembaruan Kode apa pun
- Masalah startup simulator VS Android di bawah Win 11 - hypervisor
- Dialog Dibekukan saat Edit dan Lanjutkan Memeriksa Pembaruan Kode apa pun
- Masalah startup simulator VS Android di bawah Win 11 - hypervisor
- Gagal menyebarkan ke iPhone, Kesalahan MT1001: Tidak dapat menemukan aplikasi di direktori yang ditentukan
- Tidak dapat men-debug beberapa dotnet 5 Azure Functions
- Visual Studio menjadi tidak responsif saat men-debug aplikasi UWP
- Blazor WebAssembly: Melakukan isi ulang panas saat browser ditutup menghasilkan pengecualian yang tidak membantu
- Visual Studio Crash Tanpa Alasan
- Pewarnaan sintaks C++ tidak berfungsi saat menggunakan std:c++lastest di Platform Toolset 143
- Temukan dalam file tidak berfungsi di pratinjau vs2022 3
- Visual Studio tidak memuat ulang semua file proyek yang diubah setelah perubahan cabang
- Kesalahan saat mengaktifkan server bahasa
- Mengklik kanan item apa pun di Penjelajah Solusi dan memilih 'Check In' memberikan pesan yang tidak biasa. Tidak dapat memeriksa perubahan.
- UI Visual Studio tidak responsif ketika terlalu banyak output log build selama build (misalnya: verbositas diagnostik)
- Pengembangan Linux dengan C++ - Linkage statis salah
- Templat T4 di VS2022 memerlukan penggunaan yang tidak kompatibel
- Modul C++20 gagal mengambil spesialisasi/kelebihan beban templat yang berasal dari modul yang berbeda
- Menyimpan file dalam sesi "Live Share" membuka dialog "simpan sebagai" alih-alih menyimpan file secara langsung
- Proyek C++ tidak dapat memuat ulang file di luar proyek saat startup
- Regresi salah kompilasi dengan penunjuk fungsi
- Diagnostik panggilan operator ambigu yang salah (C2593) dengan /permisif- dan teman
- Hot Reload tidak berfungsi untuk Xamarin.Forms UWP/IOS setelah peningkatan ke 16.10
- Kesalahan saat memuat templat Entitlements.plist
- Kesalahan Intellisense untuk konstruktor default dllimport constexpr
- Sistem tidak dapat menemukan file yang ditentukan(Saat menavigasi dengan mengklik dua kali pada pesan kesalahan build. )
- Proyek C++ tidak lagi dibangun di VS2022: tidak dapat menemukan assembly 'mscorlib.dll'
- Razor Editor di Vs2022 Pratinjau 2.1 lambat
- Intellisense gagal untuk C++20 dan
- PackageId:Microsoft.WebView2.arm64; PackageAction:Install; ReturnCode:-2147219199
- Peringatan kunci yang salah oleh penganalisis C26110
- Peningkatan 16.10 memutus MSTest DataSourceAttribute dengan testrunconfig
- Pengoptimalan global MSVC program menghasilkan output yang salah
- IDE Dibekukan, tab berkedot di bawah kondisi yang tidak diketahui
- Menambahkan dukungan untuk dll instrumenting dengan panggilan balik TLS (diinstrumentasikan melalui vsinstr.exe)
- VS2019 16.10 ASP.NET WEBFORM中不能选择事件
- Kegagalan bencana (Pengecualian dari HRESULT: 0x8000FFFF (E_UNEXPECTED)) dalam proyek dokumen tunggal MFC
- Templat utama yang dipilih melalui spesialisasi menyebabkan kesalahan kompilasi
- Tidak dapat memperbarui dari Pratinjau 1.1 ke Pratinjau 2.0. Siklus terdeteksi dalam grafik dependensi: Microsoft.VisualStudio.ComponentGroup.UWP.VC
- Kegagalan menginstal Pratinjau Visual Studio 2022 di Windows Server 2022.
- Pratinjau Visual Studio 2022 1 melumpuhkan IDE saat menggunakan Build All.
- Xamarin Android Debugging dengan Emulator Android mengalami crash dan menghidupkan ulang Visual Studio 2022.
- Tidak dapat menginstal versi VS sebelumnya. Pengunduhan gagal karena pada tanda tangan tidak valid
- Analisis kode/peringatan PREfast C26404, C26406, C26407 regresi performa di CppCoreCheck::P ointerSafetyXtension::SearchSmartPtrsAndReferences
- Kesalahan kompilator internal dengan std::to_array ketika variabel bersifat global dan tipe char const
- Mengkompilasi kesalahan untuk header eksternal
- C3493 dengan /std:c++latest menggunakan pengikatan terstruktur di lambda
- Tombol Kirim Umpan Balik tidak berfungsi di VS 2022 saat alat Python diinstal
- File aspx rusak setelah pembaruan 16.10
- Pengkompilasi C++ menghasilkan kode yang tidak valid untuk metode constexpr
- Tidak ada peringatan untuk variabel yang tidak digunakan ketika dinyatakan const
- Tabrakan nama modul C++
- GC mengumpulkan selama panggilan metode pada kelas c++/cli ref
- Menerbitkan Python Django dengan proyek WebDeploy gagal karena pembaruan Visual Studio ke 16.9
- ICE: ARM64 mengoptimalkan untuk /std:c++latest
- VS 16.3.0 .NET Core 3.0 Blazor Server Kode sumber aplikasi berwarna abu-abu dan kehilangan IntelliSense setelah penyebaran
- Kunci penandatanganan kode iOS 'Distribusi iPhone: Microframe Corp
(xxxxx)'
tidak ditemukan di rantai kunci - Jendela Alat diagnostik memuat miniatur, dan tidak akan mengubah ukuran dengan benar.
- Ada kesalahan kompilator 2694 mencoba memanggil make_shared di kelas dengan melemparkan destruktor pada Pratinjau MSVC 16.9 2.
- Terjadi kesalahan saat memproses rekam jepret gagal memproses timbunan terkelola.
- MSVC memungkinkan const int yang diinisialisasi default dalam ekspresi baru.
- Menerima Peringatan C5219 di header STL "kompleks".
- TipsAlat memblokir hasil pencarian.
- Visual Studio memberikan pengecualian yang aneh.
- Intel C++ Compiler, ICL, mengalami kegagalan kompilasi karena penggunaan konsep dalam file header tidak dijaga dengan ifdef __cpp_lib_concepts.
- Ada kesalahan kompilator internal saat memperluas __pragma(optimalkan) dengan /Zc:preprocessor.
- Jenis "func" yang salah di dalam lambda dalam konteks yang tidak dievaluasi.
- Penginstal Visual Studio mengalami crash saat menyediakan vsconfig
- Mendapatkan kesalahan build proyek dll MFC templat default setelah menambahkan kelas dialog baru menurut wizard.
- Penginstalan offline Visual Studio untuk pengembangan Desktop Asli C++ tidak berfungsi dengan cepat.
- Menyambungkan ke proyek Azure VSTS melalui Visual Studio menyebabkan UI berhenti merespons.
- Kotak teks dalam Opsi tidak dapat dibaca jika menggunakan font yang lebih besar.
- Visual Studio menambahkan item baru di folder berhenti merespons.
- Pengecualian Nullreferensi Konstan saat mengedit file js/cshtml.
- Terjadi kesalahan saat mengaktifkan server bahasa jarak jauh, C#/Visual Basic Language Server Client.
- Ada kesalahan internal ketika /E digunakan dengan /experimental:preprocessor dan __pragma.
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 Fitur 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.