2019LogoCatatan Rilis Visual Studio 2019 versi 16.8



Persyaratan | Sistem Komunitas | Pengembang Kompatibilitas | Persyaratan | Lisensi Riwayat | Rilis Kode | yang Dapat Didistribusikan Blog Whats | New di Visual Studio Docs


Catatan

Ini bukan versi terbaru Visual Studio. Untuk mengunduh rilis terbaru, kunjungi situs Visual Studio .



Apa yang Baru di Visual Studio 2019 versi 16.8

Jangka Waktu Dukungan

Versi ini sekarang tidak didukung. Untuk informasi selengkapnya tentang dukungan Visual Studio, silakan tinjau Kebijakan Dukungan untuk Visual Studio 2019.

Lihat versi terbaru catatan rilis atau kunjungi situs Visual Studio untuk mengunduh versi terbaru Visual Studio 2019 yang didukung.

Rilis Visual Studio 2019 versi 16.8

Catatan Rilis Yang Diarsipkan Visual Studio 2019

Visual Studio 2019 Blog

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


Lihat daftar lengkap semua item Komunitas Pengembang yang diambil di Visual Studio 2019 versi 16.8

Release Notes Icon Visual Studio 2019 versi 16.8.7

dirilis 09 Maret 2021

Masalah yang Ditangani dalam Rilis Visual Studio 2019 versi 16.8.7 ini

Pemberitahuan Penasihat Keamanan

CVE-2021-21300 Git untuk Kerentanan Eksekusi Kode Jarak Jauh Visual Studio

Kerentanan eksekusi kode jarak jauh ada saat Visual Studio mengkloning repositori berbahaya.

Kerentanan Eksekusi Kode Jarak Jauh CVE-2021-26701 .NET Core

Kerentanan eksekusi kode jarak jauh ada di .NET 5 dan .NET Core karena bagaimana pengodean teks dilakukan.


Release Notes Icon Visual Studio 2019 versi 16.8.6

dirilis 22 Februari 2021

Masalah yang Ditangani dalam Rilis Visual Studio 2019 versi 16.8.6 ini


Release Notes Icon Visual Studio 2019 versi 16.8.5

dirilis 09 Februari 2021

Pemberitahuan Penasihat Keamanan

Kerentanan Eksekusi Kode Jarak Jauh Layanan Bahasa TypeScript CVE-2021-1639

Kerentanan eksekusi kode jarak jauh ada saat Visual Studio memuat repositori berbahaya yang berisi file kode JavaScript atau TypeScript.

CVE-2021-1721 .NET Core Penolakan Kerentanan Layanan

Kerentanan penolakan layanan ada saat membuat permintaan web HTTPS selama pembuatan rantai sertifikat X509.

Kerentanan Eksekusi Kode Jarak Jauh CVE-2021-24112 .NET 5 dan .NET Core

Kerentanan eksekusi kode jarak jauh ada saat membuang metafiles ketika antarmuka grafis masih memiliki referensi untuk itu. Kerentanan ini hanya ada pada sistem yang berjalan di MacOS atau Linux.

Masalah yang Ditangani dalam Rilis Visual Studio 2019 versi 16.8.5 ini

  • Memperbaiki masalah di mana x86 Microsoft.VCLibs Appx diinstal di bawah ExtensionSDK yang diperbarui dengan tanda tangan yang benar.
  • Memperbaiki kebocoran memori saat menggunakan fitur C++ DesignTime.
  • Memperbaiki masalah di mana pengecualian akan terjadi jika kata sandi tidak diingat saat mengimpor database yang ada ke dalam proyek SSDT.
  • Memperbaiki masalah di mana tombol terbitkan dinonaktifkan saat pelanggan pertama kali menerbitkan proyek .NET Core ke folder atau target hosting lainnya.
  • Memperbaiki hang yang kadang-kadang terjadi ketika pengembang membuka halaman tampilan profil publikasi.
  • Menambahkan dukungan Xcode 12.4.

Item dari Komunitas Pengembang


Release Notes Icon Visual Studio 2019 versi 16.8.4

dirilis 12 Januari 2021

Pemberitahuan Penasihat Keamanan

CVE-2021-1651 / CVE-2021-1680 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability

Peningkatan kerentanan hak istimewa ada ketika Diagnostics Hub Standard Collector salah menangani operasi data.

Kerentanan Eksekusi Kode Jarak Jauh Penginstal CVE-2020-26870 Visual Studio

Kerentanan eksekusi kode jarak jauh ada saat Alat Penginstal Visual Studio mencoba menampilkan markdown berbahaya.

CVE-2021-1723 ASP.NET Core dan Visual Studio Penolakan Kerentanan Layanan

Penolakan kerentanan layanan ada dalam cara Kestrel mengurai permintaan HTTP/2.

Masalah yang Ditangani dalam Rilis Visual Studio 2019 versi 16.8.4 ini

  • Memperbaiki masalah di mana komponen IntelliCode khusus C#mungkin tidak diinstal jika IntelliCode sebelumnya telah diinstal dari Visual Studio Marketplace di versi Visual Studio yang lebih lama
  • Referensi proyek transitif sekarang dihormati ketika proyek PackageReference mereferensikan proyek packages.config dengan dependensi PackageReference.
  • Menambahkan dukungan Xcode 12.3.
  • Perbaikan x86_64 dukungan simulator watchOS 7.0+
  • Kami telah memperbaiki positif palsu (C33001 ~ C33005) untuk penggunaan VARIAN yang dikembalikan dari fungsi.
  • Perbaiki untuk crash VS terputus-terputus di winForms .NET Core designer saat menutup proyek atau solusi.
  • Memperbaiki Proyek Database: Menyeret file dari penjelajah solusi ke dalam file yang dibuka akan menghapus file dari sistem file!
  • Memperbaiki Pembaruan Klik pada Sql Schema Compare tidak menyimpan perubahan pada file sqlproj
  • Memperbaiki bug di mana build gagal dengan kesalahan "Tabel/kolom tidak ditemukan".
  • Perbaiki kotak centang "penerapan setelah penggabungan" dari Team Explorer -> Cabang.
  • Memperbaiki kesalahan di mana Visual Studio mungkin menjadi tidak responsif selama beberapa detik saat memeriksa pembaruan.
  • alat DeploymentAppRecipe.exe sekarang mendukung berjalan dari direktori saat ini. Sekarang juga mengembalikan nilai pengembalian bukan nol setiap kali penyebaran gagal dan mencetak pesan kesalahan ke aliran kesalahan standar.

Dari Komunitas Pengembang



Release Notes Icon Visual Studio 2019 versi 16.8.3

dirilis 08 Desember 2020

Pemberitahuan Penasihat Keamanan

Kerentanan Eksekusi Kode Jarak Jauh CVE-2020-17156 Visual Studio

Kerentanan eksekusi kode jarak jauh ada saat Visual Studio mengkloning repositori berbahaya.

Masalah yang Ditangani dalam Rilis Visual Studio 2019 versi 16.8.3 ini

  • Memperbaiki kesalahan kompilator internal saat templat fungsi berlapis didefinisikan di luar kelas induk.
  • Memperbaiki kesalahan C2355 yang salah ketika 'ini' digunakan dalam inisialisasi anggota data non-statis.
  • Kesalahan pemuatan ruleset telah diperbaiki untuk ruleset kustom menggunakan opsi /analyze:ruleset dengan opsi /analyze:rulesetdirectory dan/atau /analyze:projectdirectory.
  • Perbaiki untuk crash terputus-putus di Visual Studio saat menggunakan winForms .NET Core designer.
  • Penyisipan .NET 5.0.1 ke Visual Studio v 16.8.3
  • Memperbaiki masalah di mana beberapa jendela alat yang diaktifkan konteks UI dapat menyebabkan Visual Studio mengalami crash.
  • Memperbaiki halaman Dorong dari Kelola Cabang ketika tidak ada cabang pelacakan jarak jauh Git.
  • Menambahkan dukungan Xcode 12.2.

Dari Komunitas Pengembang



Release Notes Icon Visual Studio 2019 versi 16.8.2

dirilis 19 November 2020

Masalah yang Ditangani dalam Rilis Visual Studio 2019 versi 16.8.2 ini

  • Diperbaiki untuk bug pengoptimalan dalam perulangan.
  • Memperbaiki kesalahan kompilator internal dalam implementasi elisi salinan terjamin (fitur C++17).
  • Memperbaiki regresi build perf untuk penggunaan besar jenis anonim.
  • Mengatasi masalah di mana bilah emas dengan pesan "Argumen yang ditentukan berada di luar rentang nilai yang valid" akan muncul saat mengedit kode C#.
  • Memperbaiki masalah yang dapat menyebabkan MissingMethodException saat membangun proyek yang memiliki templat T4.
  • Memperbaiki masalah di mana pencarian dalam Dialog Proyek Baru dapat mengembalikan hasil nol.

Dari Komunitas Pengembang



Release Notes Icon Visual Studio 2019 versi 16.8.1

dirilis 12 November 2020

Masalah yang Ditangani dalam Rilis Visual Studio 2019 versi 16.8.1 ini

  • Memperbaiki masalah berdampak tinggi di mana paket "SourceExplorerPackage' tidak dimuat dengan benar." peringatan muncul saat mengkloning repositori di Team Explorer. Ketika pengguna mengalami masalah ini, itu akan menyebabkan produk berhenti merespons.

Release Notes Icon Visual Studio 2019 versi 16.8.0

dirilis 10 November 2020

Ringkasan Apa yang Baru dalam Rilis Visual Studio 2019 versi 16.8 ini


F#:

  • F# 5 sekarang dirilis bersama .NET 5
  • Peningkatan dan perbaikan performa untuk alat Visual Studio melalui Alat F# versi 11.0.0
  • Catatan rilis lengkap tersedia di GitHub

C++:

  • C++20 Coroutines sekarang didukung di bawah /std:c++latest dan <header coroutine> .
  • IntelliSense sekarang menyediakan dukungan untuk header konsep> dan <rentang> C++20<, serta mengganti nama dan menelusuri definisi konsep.
  • STL kami sekarang memiliki dukungan untuk sebagian besar Rentang C++20.
  • Fungsi anggota khusus yang trivial secara kondisional sekarang didukung di MSVC.
  • C11 dan C17 sekarang didukung di bawah sakelar /std:c11 dan /std:c17.
  • Peningkatan STL tambahan termasuk dukungan penuh untuk std::atomic_ref, std::midpoint dan std::lerp dan std::execution::unseq, pengoptimalan untuk std::reverse_copy, dan banyak lagi.
  • Versi CMake yang ditingkatkan dikirim dengan Visual Studio ke CMake 3.18.
  • Alat analisis kode kami sekarang mendukung standar SARIF 2.1: format log analisis statis standar industri.
  • Alat build yang hilang di proyek Linux sekarang akan mengeluarkan peringatan di toolbar dan deskripsi yang jelas tentang alat yang hilang dalam daftar kesalahan.
  • Anda sekarang dapat melakukan penelusuran kesalahan dump inti Linux pada sistem Linux jarak jauh atau WSL langsung dari Visual Studio.
  • Untuk pembuatan komentar C++ Doxygen, kami menambahkan opsi gaya komentar tambahan (/*! dan //!).
  • Pengumuman vcpkg tambahan
  • Dukungan kompilator untuk lambda dalam konteks yang tidak dievaluasi
  • /debug:performa tautan penuh ditingkatkan dengan pembuatan pdb multi-utas. Beberapa aplikasi besar dan game AAA melihat antara 2 hingga 4 kali penautan yang lebih cepat.
  • Debugger Visual Studio sekarang memiliki dukungan untuk char8_t.
  • Dukungan untuk proyek ARM64 menggunakan clang-cl.
  • Dukungan Intrinsik Intel AMX.

Debugger:

  • Dukungan debugging cadangan inti .NET Core Linux
  • Analisis Otomatis .NET dan .NET Core
  • Analisis otomatis jalur panas memori .NET dan .NET Core

Pembaruan Editor Razor Eksperimental:

  • Bola lampu Blazor
  • Lampu C#
  • Pemformatan Razor yang Disempurnakan
  • Mengganti nama komponen Razor dalam markup dari file .razor
  • Masuk ke definisi pada namespace tag komponen Blazor
  • Pewarnaan hover C#
  • Pewarnaan toolitip penyelesaian C#
  • Go-to-definition/implementasi untuk Razor, termasuk file tertutup
  • Temukan Semua Referensi dalam file Razor tertutup
  • Peningkatan preformasi dan stabilitas pengeditan Razor untuk proyek dan solusi besar

Palsu dengan Proyek Gaya SDK:

  • Saat menggunakan dukungan Fakes baru untuk proyek gaya SDK, beberapa pengguna mengalami kesalahan berikut saat menghasilkan shim

Produktivitas Git:

  • Pelajari selengkapnya tentang cara menggunakan semua fitur Git dalam dokumentasi online baru kami
  • Buka jendela Repositori Git kapan saja melalui jendela Perubahan Git, menu Tampilan, dan bilah Status
  • Ambil, Tarik, dan Dorong dari beberapa jarak jauh di jendela Perubahan Git
  • Melihat pesan keberhasilan dan kesalahan untuk perintah Git di bagian atas jendela Repositori Git
  • Membuat cabang baru dari item kerja Azure DevOps
  • Buka repositori Git dari daftar repositori lokal Anda di menu Git
  • Penyedia kontrol sumber default sekarang adalah Git alih-alih TFVC
  • Klik tunggal untuk beralih antar riwayat cabang di jendela Repositori Git
  • Lihat dan pilih dari daftar solusi di Penjelajah Solusi setelah membuka repositori
  • Mengubah tampilan riwayat dan mencari penerapan melalui bilah alat di jendela Repositori Git
  • Mengambil, menarik, dan mendorong dari bagian penerapan masuk dan keluar dalam grafik riwayat cabang
  • Diminta untuk membuat permintaan pull setelah mendorong cabang ke remote Anda
  • Menampilkan nama cabang dalam perintah gabungkan dan rebase di menu konteks daftar cabang
  • Mengakses perintah Git melalui menu konteks di Penjelajah Solusi dan Editor
  • Amati kemajuan klon melalui dialog modal baru dengan opsi untuk memindahkan proses ke latar belakang

IntelliCode:

  • Mendapatkan penyelesaian IntelliCode yang dipersonalisasi dalam dokumentasi Visual Studio
  • Selalu perbarui penyelesaian IntelliCode Anda dengan basis kode Anda dan bagikan sebagai bagian dari dokumentasi alur kerja CI tim Anda

Produktivitas .NET:

  • Penganalisis Roslyn sekarang disertakan dalam .NET 5.0 SDK
  • Pemfaktoran ulang yang memperkenalkan sintaks pencocokan pola C# 9 not baru saat operator supresi ada
  • Pemfaktoran ulang metode sebaris untuk membantu mengganti penggunaan metode statis, instans, dan ekstensi dalam satu isi pernyataan
  • Perbaikan kode untuk mengonversi instans ke typeofnameof di C# dan GetType ke NameOf di Visual Basic
  • Dukungan C# dan Visual Basic untuk petunjuk nama parameter sebaris yang menyisipkan hiasan untuk literal, literal yang ditransmisikan, dan instansiasi objek sebelum setiap argumen dalam panggilan fungsi
  • Pemfaktoran ulang yang mengekstrak anggota dari kelas yang dipilih ke kelas dasar baru di C# dan Visual Basic
  • Pembersihan kode memiliki opsi konfigurasi baru yang dapat menerapkan pemformatan dan preferensi header file yang diatur dalam file EditorConfig Anda di satu file atau seluruh solusi
  • Perbaikan kode untuk menghapus in kata kunci di mana argumen tidak boleh diteruskan oleh referensi
  • Pemfaktoran ulang yang memperkenalkan combinator pola C#9 baru dan saran pencocokan pola seperti mengonversi == untuk digunakan is jika berlaku
  • Perbaikan kode untuk membuat abstrak kelas ketika Anda mencoba menulis metode abstrak di kelas yang tidak abstrak
  • Penyelesaian IntelliSense dalam literal string DateTime dan TimeSpan secara otomatis muncul ketika kuotasi pertama diketik
  • Perbaikan kode untuk menghapus yang tidak perlu pragma suppressions dan tidak perlu SuppressMessageAttributes
  • Rename dan Find All References memahami referensi ke simbol dalam string target global SuppressMessageAttributes
  • ByVal memudar untuk mengatakan tidak perlu bersama dengan perbaikan kode untuk menghapus ByVal yang tidak perlu di Visual Basic
  • Dukungan jendela interaktif untuk beberapa runtime, seperti .NET Framework dan .NET Core.
  • Menambahkan API RegisterAdditionalFileAction baru yang memungkinkan penulis penganalisis membuat penganalisis untuk file tambahan.

IDE Visual Studio 2019:

  • Menambahkan akun Github Anda menggunakan pengalaman manajemen akun
  • Dalam rilis ini, pengalaman Find in Files warisan telah ditolak dan semua pengguna dipindahkan ke pengalaman baru. Tim Editor bekerja sama dengan orang-orang yang meninggalkan umpan balik di Komunitas Pengembang yang mengalami masalah dengan pengalaman Temukan di File modern.
  • Penyedia penerbitan ClickOnce sekarang tersedia untuk Aplikasi Desktop Windows .NET Core 3.1 dan .NET 5.0.

Bungkus Panel Detail Pengujian Test Explorer:

  • Sekarang Anda dapat membungkus teks di panel Detail Pengujian penjelajah pengujian.

Alat XAML (WPF, UWP, & Xamarin.Forms):

  • Peningkatan diagnostik Kegagalan Pengikatan XAML
  • XAML Hot Reload Pengaturan dipindahkan ke "Debugging > Hot Reload"
  • Populasi kotak alat dari paket NuGet yang tidak direferensikan

JavaScript/TypeScript:

  • Debugger JavaScript/TypeScript sekarang mendukung debugging pekerja layanan, pekerja web, iFrames, dan halaman Anda JavaScript secara bersamaan! Selain itu, pengalaman penelusuran kesalahan baru menambahkan dukungan untuk men-debug aplikasi server node back-end Anda dan JavaScript sisi klien di browser secara bersamaan. Fitur ini masih bersifat eksperimental. Anda dapat mengaktifkan pengalaman penelusuran kesalahan baru di menu Opsi penelusuran kesalahan
  • Anda sekarang dapat memicu refaktor di mana saja mereka mungkin tersedia dengan menggunakan pintasan tindakan kode (ctrl + .). Anda bahkan tidak perlu memilih teks apa pun - TypeScript sekarang cukup pintar untuk melihat-lihat lokasi kursor Anda untuk refaktor terbaik yang tersedia!
  • Anda sekarang dapat menyempurnakan paket mana yang dicari TypeScript untuk penyelesaian impor otomatis. Hal ini dapat menyebabkan peningkatan performa di beberapa proyek dengan banyak dependensi. Untuk detail selengkapnya, silakan referensikan TypeScript 4.0 (catatan rilis)[https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html]
  • Kami menambahkan pesan di panel output yang menunjukkan jenis mana yang kami instal untuk mendukung intellisense. Sebaiknya tambahkan tsconfig ke proyek Anda untuk menyesuaikan jenis mana yang digunakan.
  • Harap dicatat bahwa kami menyertakan pengkompilasi TypeScript 4.0 dan layanan bahasa

Pemberitahuan Penasihat Keamanan

CVE-2020-17100 Visual Studio Merusak Kerentanan

Kerentanan pengubahan ada ketika Alat Python untuk Visual Studio membuat folder python27. Penyerang yang berhasil mengeksploitasi kerentanan ini dapat menjalankan proses dalam konteks yang ditinggikan.

Masalah yang Diatasi dalam Rilis ini

  • Memperbaiki masalah saat mengkompilasi di Visual Studio 2019 16.7 dengan panjang Intel C++ Compiler 80-bit memancarkan kesalahan kompilator, mencegah proyek membangun.
  • Memperbaiki masalah di mana Pengujian Unit Langsung akan menolak untuk memulai dalam beberapa skenario.
  • .NET 5.0.RC2 ditambahkan ke Visual Studio 2019 v16.8 Pratinjau 4
  • Memperbaiki bug di mana operasi Git sesekali akan dimulai dan tidak pernah selesai.
  • Menambahkan fungsionalitas tambahan ke pembuatan dan koneksi Visual Studio Codespaces.
  • Memperbaiki bug yang menyebabkan Visual Studio 2019 mengalami crash atau berhenti merespons saat menutup atau menavigasi menjauh dari solusi ASP.NET Core.
  • Memperbaiki masalah di mana sistem proyek C++ akan gagal dimuat setelah menghapus instalasi dan menginstal ulang Visual Studio 2019.

Detail Apa yang Baru di Visual Studio 2019 versi 16.8.0

C++

  • C++20 Coroutines sekarang didukung di bawah /std:c++latest dan <header coroutine> . Dukungan untuk perilaku warisan kami tersedia di bawah <eksperimental/coroutine> dan sakelar /await.
  • IntelliSense sekarang menyediakan dukungan untuk header konsep> dan <rentang> C++20<, serta mengganti nama dan menelusuri definisi konsep. Ada masalah umum yang kami harapkan untuk ditangani di Pratinjau 4.
  • STL kami sekarang memiliki dukungan untuk sebagian besar Rentang C++20. Anda dapat melacak kemajuan kami pada rentang masalah GitHub kami.
  • Fungsi anggota khusus yang trivial secara kondisional sekarang didukung di MSVC.
  • C11 dan C17 sekarang didukung di bawah sakelar /std:c11 dan /std:c17.
  • Peningkatan STL tambahan termasuk dukungan penuh untuk std::atomic_ref, std::midpoint dan std::lerp dan std::execution::unseq, pengoptimalan untuk std::reverse_copy, dan banyak lagi. Anda dapat menemukan semua pembaruan di Changelog kami.
  • Kami telah meningkatkan versi CMake yang dikirim dengan Visual Studio ke CMake 3.18.
  • Alat analisis kode kami sekarang mendukung standar SARIF 2.1: format log analisis statis standar industri. Anda dapat membaca selengkapnya tentang format SARIF dalam spesifikasi resmi.
  • Alat build yang hilang di proyek Linux sekarang akan mengeluarkan peringatan di toolbar dan deskripsi yang jelas tentang alat yang hilang dalam daftar kesalahan.
  • Anda sekarang dapat melakukan penelusuran kesalahan dump inti Linux pada sistem Linux jarak jauh atau WSL langsung dari Visual Studio.
  • Untuk pembuatan komentar C++ Doxygen, kami menambahkan opsi gaya komentar tambahan (/*! dan //!).
  • Pengumuman vcpkg tambahan
  • Kami telah menambahkan dukungan kompilator untuk lambda dalam konteks yang tidak dievaluasi yang memungkinkan Anda menggunakan lambda dalam penentu decltype.
  • Linter dan perbaikan saat Anda mengetik sekarang tersedia di Visual Studio. Konfigurasikan menggunakan Tools-Options-Text>> Editor-C>/C++->CodeStyle-Linter> + Fixups.
As-you-type linter showing warning for using bitwise & instead of logical && on bools
Linter as-you-type

Debugger

Dukungan debugging cadangan inti .NET Core Linux

Debugging cadangan inti Linux terkelola di Windows telah sulit diwujudkan sampai sekarang, biasanya berarti menyiapkan lingkungan Linux lain yang persis mencerminkan produksi dan kemudian menginstal sekumpulan alat untuk analisis. Untungnya dengan Visual Studio 2019 16.8 pratinjau 3 Anda cukup menyeret dan menghilangkan cadangan inti Linux terkelola langsung ke IDE Anda dan segera mulai penelusuran kesalahan.

Analisis Otomatis .NET

Pemrograman asinkron (asinkron) telah ada selama beberapa tahun di platform .NET tetapi secara historis sulit dilakukan dengan baik. Kami telah memperkenalkan penganalisis cadangan memori terkelola yang membantu mengidentifikasi skenario dan anti-pola berikut:

  • Sync-over-Async
  • Kelelahan threadpool

Analisis otomatis jalur panas memori .NET dan .NET Core

Ini memungkinkan pelanggan untuk melihat jenis objek yang mendominasi secara intuitif dalam tumpukan memori mereka dengan menggunakan anotasi api di jendela Alat Memori Diagnostik.

Palsu dengan Proyek Gaya SDK Menghasilkan Masalah Shim

Saat menggunakan dukungan Fakes baru untuk proyek gaya SDK, beberapa pengguna mengalami kesalahan berikut saat menghasilkan shim.

Cannot generate shim for System.DateTime: type is not supported because of internal limitations

Perbaikan untuk ini dirilis di 16.8 Pratinjau 3. Jika Anda menggunakan rilis 16.7.* Anda dapat menggunakan solusi berikut:

  1. Tambahkan <FakesUseV2Generation>False</FakesUseV2Generation> ke PropertyGroup di file csproj Anda.
  2. <Tambahkan Fakes Include="Fakes\*.fakes" /> ke ItemGroup di file csproj Anda.
  3. Tambahkan referensi ke rakitan Fakes yang dihasilkan di ProjectDir/FakesAssemblies.

Anda juga dapat mengikuti umpan balik komunitas pengembang untuk pembaruan tambahan.

Pembaruan editor Razor Eksperimental

Editor Razor eksperimental baru sekarang mendukung fitur pengeditan Razor berikut:

  • Bola lampu Blazor:
    • Ekstrak ke kode di belakang*:
    • Membuat komponen dari tag*
    • Menambahkan @using direktif untuk komponen
    • Nama tag komponen yang sepenuhnya memenuhi syarat
  • Lampu C#
    • Tambahkan @using direktif
    • Nama jenis yang sepenuhnya memenuhi syarat
  • Pemformatan Razor yang Disempurnakan
  • Mengganti nama komponen Razor dalam markup dari file .razor
  • Masuk ke definisi pada nama tag komponen Blazor
  • Pewarnaan hover C#
  • Pewarnaan toolitip penyelesaian C#
  • Temukan Semua Referensi dalam file Razor tertutup
  • Peningkatan preformasi dan stabilitas pengeditan Razor untuk proyek dan solusi besar

* Hanya berfungsi dalam skenario Razor lokal, belum didukung di Visual Studio Codespaces atau Live Share.

Untuk mengaktifkan editor Razor eksperimental, buka Fitur Pratinjau Lingkungan>Opsi>Alat>, pilih Aktifkan editor Razor eksperimental, lalu mulai ulang Visual Studio.

Visual Studio 2019 IDE

  • Tambahkan akun GitHub Anda menggunakan pengalaman manajemen akun Visual Studio yang sudah dikenal. Kontrol versi, terminal terintegrasi, dan fitur lainnya kemudian akan dapat memanfaatkan kredensial akun Anda untuk memenuhi kebutuhan autentikasi GitHub mereka.
Inline parameter name hints with GitHub
Menambahkan akun GitHub di Visual Studio
  • Penyedia penerbitan ClickOnce sekarang tersedia untuk Aplikasi Desktop Windows .NET Core 3.1 dan .NET 5.0. Untuk memulai, klik kanan proyek di Penjelajah Solusi dan pilih Terbitkan, atau pilih menu Bangun > Terbitkan <AppName>. ClickOnce dapat ditemukan di bawah Kategori Folder.
Inline parameter name hints with GitHub Image
Penyedia ClickOnce Publish di Visual Studio

Produktivitas Git

  • Membuat cabang baru dari item kerja Azure DevOps
Create a new branch from an Azure DevOps work item
Membuat cabang baru dari item kerja
  • Buka repositori Git dari daftar repositori lokal Anda di menu Git
Local Repositories list
Daftar repositori lokal di menu Git
  • Penyedia kontrol sumber default sekarang adalah Git alih-alih TFVC, yang dapat Anda ubah dari Alat - Opsi - Kontrol Sumber

  • Klik tunggal untuk beralih antar riwayat cabang di jendela Repositori Git

  • Lihat dan pilih dari daftar solusi di repositori Anda di Penjelajah Solusi setelah membuka repositori

Preview Feature toggle to show list of Views when opening a repo
Pengalih Fitur Pratinjau untuk menampilkan daftar Tampilan saat membuka repositori
List of Views in Solution Explorer
Daftar Tampilan di Penjelajah Solusi

Produktivitas .NET

  • Penganalisis platform kompilator .NET (Roslyn) memeriksa kode C# atau Visual Basic Anda untuk keamanan, performa, desain, dan masalah lainnya. Mulai dari .NET 5.0, penganalisis ini disertakan dengan .NET SDK. Penganalisis diaktifkan, secara default, untuk proyek yang menargetkan .NET 5.0 atau yang lebih baru. Anda dapat mengaktifkan analisis kode pada proyek yang menargetkan versi .NET sebelumnya dengan mengatur properti EnableNETAnalyzers ke true. Anda dapat menonaktifkan analisis kode untuk proyek Anda dengan mengatur EnableNETAnalyzers ke false. Anda juga dapat menggunakan jendela Properti Proyek untuk mengaktifkan/menonaktifkan penganalisis .NET. Untuk mengakses jendela Properti Proyek, klik kanan proyek dalam Penjelajah Solusi dan pilih Properti. Selanjutnya, pilih tab Analisis Kode tempat Anda dapat memilih atau menghapus kotak centang untuk Mengaktifkan penganalisis .NET.
Project Properties window to enable .NET Analyzers
Jendela Properti Proyek untuk mengaktifkan Penganalisis .NET
  • Sekarang ada pemfaktoran ulang yang memperkenalkan sintaks pencocokan pola C# 9 not baru ketika operator supresi ada. Tempatkan kursor Anda pada operator supresi. Tekan (Ctrl+.) untuk memicu menu Tindakan Cepat dan Pemfaktoran Ulang. Pilih Gunakan pencocokan pola.
Refactoring introducing C# 9 not pattern matching syntax
Pemfaktoran ulang memperkenalkan C# 9 bukan sintaks pencocokan pola
  • Sekarang ada refaktor metode sebaris yang membantu Anda mengganti penggunaan metode statis, instans, dan ekstensi dalam satu isi pernyataan dengan opsi untuk menghapus deklarasi metode asli. Tempatkan kursor Anda pada penggunaan metode . Tekan (Ctrl+.) untuk memicu menu Tindakan Cepat dan Pemfaktoran Ulang. Selanjutnya pilih dari salah satu opsi berikut:

Pilih Sebaris <QualifiedMethodName> untuk menghapus deklarasi metode sebaris:

Inline Method refactoring removing declaration
Metode Sebaris merefaktor penghapusan deklarasi

Pilih Sebaris dan pertahankan <QualifiedMethodName> deklarasi metode asli:

Inline Method refactoring preserving declaration
Deklarasi pelestarian refaktor Metode Sebaris
  • Membuat file C# atau Visual Basic baru dari templat menghormati pengaturan gaya kode EditorConfig . Gaya kode berikut akan secara otomatis diterapkan saat membuat file baru: header file, mengurutkan menggunakan direktif, dan menempatkan menggunakan direktif di dalam/di luar namespace.

  • Sekarang ada dukungan C# dan Visual Basic untuk petunjuk nama parameter sebaris yang menyisipkan hiasan untuk literal, literal yang ditransmisikan, dan instansiasi objek sebelum setiap argumen dalam panggilan fungsi. Anda harus mengaktifkan opsi ini terlebih dahulu di >Alat Opsi>Editor>Teks C# atau Tingkat Lanjut Dasar>dan pilih Tampilkan petunjuk nama parameter sebaris (eksperimental). Petunjuk nama parameter sebaris kemudian akan muncul di file C# atau Visual Basic.

Inline parameter name hints
Petunjuk Nama Parameter Sebaris
  • Anda sekarang dapat mengekstrak anggota dari kelas yang dipilih ke kelas dasar baru dengan refaktor Kelas Dasar Ekstrak baru. Tempatkan kursor Anda pada nama kelas atau anggota yang disorot. Tekan (Ctrl+.) untuk memicu menu Tindakan Cepat dan Pemfaktoran Ulang. Pilih Tarik anggota hingga kelas dasar baru. Dialog Ekstrak Kelas Dasar baru akan terbuka di mana Anda dapat menentukan nama untuk kelas dasar dan lokasi tempatnya harus ditempatkan. Anda dapat memilih anggota yang ingin Anda transfer ke kelas dasar baru dan memilih untuk membuat anggota abstrak dengan memilih kotak centang di kolom Buat Abstrak.
Extract Base Class
Ekstrak Kelas Dasar

Setelah Anda memilih Ok , Anda akan melihat kelas dasar baru ditambahkan bersama dengan anggotanya.

Untuk C#, pilih Konversi typeof ke nameof:

Convert typeof to nameof
Mengonversi typeof ke nameof

Untuk Visual Basic, pilih Konversi GetType ke NameOf:

Convert GetType to NameOf
Mengonversi GetType ke NameOf
  • Pembersihan kode memiliki opsi konfigurasi baru yang dapat menerapkan pemformatan dan preferensi header file yang diatur dalam file EditorConfig Anda di satu file atau seluruh solusi.
Formatting and File Header support in Code Cleanup
Dukungan Pemformatan dan Header File dalam Pembersihan Kode
  • Sekarang ada perbaikan kode untuk menghapus in kata kunci di mana argumen tidak boleh diteruskan oleh referensi. Tempatkan kursor Anda pada kesalahan. Tekan (Ctrl+.) untuk memicu menu Tindakan Cepat dan Pemfaktoran Ulang. Pilih Hapus kata kunci 'masuk'.
Remove in keyword code fix
Hapus Perbaikan Kode Kata Kunci 'in'
  • Sekarang ada pemfaktoran ulang yang memperkenalkan combinator pola C#9 baru. Seiring dengan saran pencocokan pola seperti mengonversi == untuk digunakan is jika berlaku, perbaikan kode ini juga menyarankan combinator andpola , or dan not ketika mencocokkan beberapa pola yang berbeda dan meniadakan. Letakkan kursor Anda di dalam pernyataan. Tekan (Ctrl+.) untuk memicu menu Tindakan Cepat dan Pemfaktoran Ulang. Pilih Gunakan pencocokan pola.
Introduce C#9 Pattern Combinators
Memperkenalkan Combinator Pola C#9
  • Sekarang ada perbaikan kode untuk membuat abstrak kelas ketika Anda mencoba menulis metode abstrak di kelas yang tidak abstrak. Tempatkan kursor Anda pada kesalahan metode. Tekan (Ctrl+.) untuk memicu menu Tindakan Cepat dan Pemfaktoran Ulang. Pilih Buat kelas 'abstrak'.
Make Class Abstract
Membuat Abstrak Kelas
  • Dalam 16.7 Pratinjau 1 kami menambahkan penyelesaian IntelliSense dalam literal string DateTime dan TimeSpan. Dalam rilis ini, daftar penyelesaian ini secara otomatis muncul ketika kutipan pertama dititik. Di masa lalu, diperlukan untuk mengetik (ruang Ctrl+) untuk melihat daftar penyelesaian ini. Letakkan kursor Anda di dalam string DateTime atau TimeSpan secara harfiah dan ketik tanda kutip ganda pertama. Anda kemudian akan melihat opsi penyelesaian dan penjelasan tentang arti setiap karakter. Format waktu tanggal dan contoh akan disediakan.
IntelliSense Completion in DateTime and TimeSpan String Literals
Penyelesaian IntelliSense dalam String DateTime dan TimeSpan Literals
This improvement also works for interpolated strings when you type a colon
Peningkatan ini juga berfungsi untuk string terinterpolasi saat Anda mengetik titik dua
  • Sekarang ada perbaikan kode untuk menghapus supresi pragma yang tidak perlu dan tidak perlu SuppressMessageAttributes. Tempatkan kursor Anda pada peringatan pragma atau SuppressMessageAttribute. Tekan (Ctrl+.) untuk memicu menu Tindakan Cepat dan Pemfaktoran Ulang. Pilih Hapus penekanan yang tidak perlu.
Remove Unnecessary Pragmas
Hapus Pragmas yang Tidak Perlu
Remove Unnecessary SuppressMessageAttributes
Hapus SuppressMessageAttributes yang Tidak Perlu
  • Ganti nama dan Temukan Semua Referensi sekarang memahami referensi ke simbol dalam string target supresi global SuppressMessageAttribute .
Rename SuppressMessageAttribute
Ganti nama SuppressMessageAttribute
Find All References for SuppressMessageAttribute
Temukan Semua Referensi untuk SuppressMessageAttribute
  • Visual Basic memiliki beberapa cara untuk meneruskan parameter, ByVal dan ByRef, dan untuk waktu yang lama ByVal telah bersifat opsional. Kami sekarang memudarkan ByVal untuk mengatakan itu tidak perlu bersama dengan perbaikan kode untuk menghapus ByVal yang tidak perlu. Tempatkan kursor Anda pada kata kunci ByVal . Tekan (Ctrl+.) untuk memicu menu Tindakan Cepat dan Pemfaktoran Ulang. Pilih kata kunci 'ByVal' tidak perlu dan dapat dihapus.
Visual Basic Remove ByVal Refactoring
Pemfaktoran Ulang ByVal Hapus Visual Basic
  • Sekarang ada dukungan jendela interaktif untuk beberapa runtime, seperti .NET Framework dan .NET Core.
Interactive Window Support in .NET Core
Dukungan Jendela Interaktif di .NET Core
  • Ada API RegisterAdditionalFileAction baru yang memungkinkan penulis penganalisis membuat penganalisis untuk file tambahan.

Bungkus Panel Detail Pengujian Test Explorer

Fitur yang sangat diminta ini memungkinkan pengguna untuk memilih pembungkusan teks atau membiarkan perataan baris teks default. Saat perataan teks tidak diperlukan, pembungkusan dapat membuat umpan balik dari uji coba jauh lebih mudah dilihat dan menghilangkan kebutuhan akan bilah gulir horizontal. Anda dapat mengaktifkan ini dari menu pengaturan Test Explorer atau menu konteks Panel Ringkasan.

Wrap test details from the Test Settings menu
Menu pengaturan pengujian
Wrap test details from the right-click context menu
Membungkus detail pengujian dari menu konteks klik kanan

Alat XAML (WPF, UWP, & Xamarin.Forms)

Peningkatan diagnostik Kegagalan Pengikatan XAML

Pengembang yang bekerja pada proyek WPF, UWP, WinUI, dan Xamarin.Forms harus sering mendeteksi dan mengatasi kegagalan pengikatan data XAML dalam aplikasi mereka. Untuk meningkatkan alat diagnostik dalam skenario ini, kami telah menambahkan dua pengalaman baru ke Visual Studio 2019 versi 16.8 atau yang lebih baru:

  • Ikon Indikator Kegagalan Pengikatan XAML: ikon indikator kegagalan Pengikatan XAML baru sekarang ada di toolbar dalam aplikasi untuk proyek WPF dan UWP dan di Pohon Visual Langsung untuk semua proyek XAML termasuk Xamarin.Forms. Ikon ini akan menampilkan indikator merah jika setidaknya satu kegagalan pengikatan terdeteksi. Mengklik ikon juga akan membawa Anda ke jendela Kegagalan Pengikatan XAML baru.
Binding Failure Icon (in-app toolbar)
Ikon Kegagalan Pengikatan (toolbar dalam aplikasi)
  • Jendela Kegagalan Pengikatan XAML: jendela Kegagalan Pengikatan XAML baru sekarang tersedia untuk proyek WPF, UWP, WinUI, dan Xamarin.Forms. Pengalaman khusus baru ini menyediakan antarmuka pengguna yang kaya atas informasi kegagalan pengikatan yang sebelumnya hanya tersedia di Jendela Output. Peningkatan termasuk kemampuan untuk melihat kegagalan sebagai sekumpulan kolom yang dapat diurutkan, disesuaikan, dan sepenuhnya dapat dicari. Kami juga telah mengelompokkan kesalahan serupa bersama-sama membatasi kebisingan yang dapat terjadi selama kombinasi tertentu dari kegagalan templat pengikatan data sambil tetap membuat semua informasi kesalahan mentah asli tersedia dan mudah disalin melalui opsi menu klik kanan. (catatan: memerlukan Xamarin versi 4.5.0.266-pre3 atau lebih tinggi)
  • Navigasi ke Sumber untuk kegagalan pengikatan: Dalam kemitraan dengan tim WPF, kami telah mengaktifkan kemampuan untuk menavigasi ke sumber kegagalan pengikatan bagi pelanggan yang menargetkan WPF pada .NET 5 (RC2 atau yang lebih baru).
XAML Binding Failure Window & LVT Icon
Jendela Kegagalan Pengikatan XAML & Ikon LVT

XAML Hot Reload

  • Xamarin.Forms "hanya perubahan" XAML Hot Reload sekarang mendukung UWP: dalam rilis ini kami mulai meluncurkan dukungan untuk fitur yang sangat diminta yang memungkinkan perubahan baru hanya dukungan XAML Hot Reload di Proyek Xamarin.Forms saat menargetkan UWP. Harap dicatat bahwa fitur ini masih dalam pengembangan, dan saat mengedit XAML sekarang akan memicu pembaruan di aplikasi yang sedang berjalan fitur lain seperti toolbar dalam aplikasi (pemilihan elemen, dll.) belum sepenuhnya diimplementasikan, tetapi akan berada di rilis mendatang.
  • XAML Hot Reload Pengaturan dipindahkan ke "Debugging > Hot Reload": Dalam rilis ini kami telah mengonsolidasikan pengaturan XAML Hot Reload di seluruh WPF, UWP, dan Xamarin.Forms ke dalam layar pengaturan terpadu di bawah "Debugging > Hot Reload". Kami juga telah pertama kali mengaktifkan kemampuan untuk menonaktifkan atau mengaktifkan XAML Hot Reload per platform untuk memberi Anda kontrol penuh ketika fitur ini tersedia. (Catatan: Tidak ada pengaturan yang akan diubah selama migrasi ini sehingga semua pilihan Anda yang ada akan terus berlaku tepat di bawah lokasi baru ini)
XAML Hot Reload Consolidated Settings
Pengaturan Konsolidasi XAML Hot Reload

Editor Kode XAML:

  • Dukungan IntelliSense WinUI 3.0: Dalam rilis ini kami telah mengaktifkan dukungan IntelliSense yang lebih baik untuk pengembang yang membangun aplikasi menggunakan pratinjau WinUI 3.0 baru 3 atau yang lebih baru. Untuk mempelajari selengkapnya tentang WinUI 3.0 lihat dokumentasi dan untuk memberikan umpan balik, kunjungi repositori GitHub Windows UI XAML. Catatan: Pratinjau WinUI 3.0 terbaru direkomendasikan pada 16.9 Pratinjau 1 untuk pengalaman peralatan yang diperbarui.
  • Meningkatkan Dukungan MVVM: Saat menulis dokumen XAML, Anda dapat mengatur d:DataContext untuk mendapatkan pengikatan intelliSense yang akurat untuk dokumen XAML. Di masa lalu, menentukan jenis konteks data secara manual rumit; Anda harus meninggalkan dokumen XAML, menemukan jenis model tampilan yang diinginkan, menyalin dan menempelkan namespace layanan dan namanya ke dalam deklarasi d:DataContext. Dalam rilis ini kami memperkenalkan fitur baru yang memungkinkan Anda dengan cepat mendeklarasikan d:DataContext melalui bola lampu yang menunjukkan kemungkinan kandidat model tampilan.
XAML IntelliSense for MVVM d:DataContext
XAML IntelliSense untuk MVVM d:DataContext

Diperpanjang

  • Populasi kotak alat dari paket NuGet yang tidak direferensikan: Dalam rilis ini kami telah menambahkan dukungan untuk file VisualStudioToolsManifest.xml khusus TargetFrameworkMoniker saat mengisi Kotak Alat dengan kontrol dari paket NuGet yang tidak direferensikan. Jadi, misalnya, paket Anda dapat mengekspos set kontrol yang berbeda ke proyek .NET Core 3.1 dan .NET 5.0.

Dari Komunitas Pengembang



Masalah yang Diketahui

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

Umpan balik dan saran

Kami ingin mendengar pendapat Anda! Untuk masalah, beri tahu kami melalui opsi Laporkan Masalah di sudut kanan atas alat penginstal atau IDE Visual Studio itu sendiri. Ikon Feedback Icon terletak di sudut kanan atas. Anda dapat membuat saran produk atau melacak masalah Anda di Komunitas Pengembang Visual Studio, tempat Anda dapat mengajukan pertanyaan, menemukan jawaban, dan mengusulkan fitur baru. 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.


Riwayat Catatan Rilis Visual Studio 2019

Untuk informasi selengkapnya yang berkaitan dengan versi Visual Studio 2019 sebelumnya, lihat halaman Riwayat Catatan Rilis Visual Studio 2019.


Bagian Atas Halaman