Bagikan melalui


Ikon Visual StudioCatatan Rilis Visual Studio 2017 versi 15.8


Persyaratan | Sistem Komunitas | Pengembang Kompatibilitas | Persyaratan Lisensi Yang | Dapat Didistribusikan Blog Persyaratan | Lisensi yang Diketahui |



Catatan

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


Jangka Waktu Dukungan

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

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

Visual Studio Blog

Blog Visual Studio adalah sumber resmi wawasan produk dari Tim Teknik Visual Studio. Anda dapat menemukan informasi mendalam tentang rilis Visual Studio 2017 versi 15.8 dalam postingan berikut:

Rilis Visual Studio 2017 versi 15.8

Penting

Pemberitahuan Penasihat Keamanan Visual Studio 2017 versi 15.8

Ringkasan Fitur Baru Penting di 15.8

  • Alat penginstal sekarang menawarkan opsi untuk mengunduh semua file sebelum memulai penginstalan.
  • Kami meningkatkan performa selama pembongkaran/pengisian ulang proyek dan pengalihan cabang.
  • Waktu pemuatan solusi dapat ditingkatkan dengan menonaktifkan pemulihan dokumen otomatis.
  • Kami melakukan peningkatan performa pengujian yang signifikan sambil menjalankan solusi besar dengan beberapa proyek pengujian.
  • Visual Basic sekarang memberi Anda peningkatan performa yang signifikan.
  • Pembuatan Profil Performa sekarang menawarkan kemampuan untuk menjeda/melanjutkan pengumpulan data dan alat Pelacakan Alokasi Objek .NET baru telah ditambahkan.
  • Kami melakukan penyempurnaan pada alat Penggunaan CPU untuk Profil Performa.
  • Kami menambahkan fitur produktivitas baru, seperti pembersihan kode, refaktor invert-if, Buka Blok Penutup, dukungan Multi-Caret, dan profil keyboard baru.
  • Anda dapat memilih instans target saat menelusuri kesalahan ekstensi.
  • Luncurkan Snapshot Debugger langsung dari halaman ringkasan penerbitan.
  • Kami memperkenalkan F# 4.5, versi bahasa baru yang sepenuhnya mendukung Span<'T> dan berisi peningkatan signifikan pada jejak tumpukan untuk kode asinkron.
  • Kami meningkatkan performa dan menambahkan fitur baru di alat F# , seperti Ctrl+Klik untuk Masuk ke Definisi.
  • Penyempurnaan pada toolset C++ mencakup penyempurnaan pada pengoptimal dan linker SSA.
  • Penambahan pengembangan lintas platform C++ termasuk pembaruan ClangFormat, dan templat konfigurasi di CMake dan Open Folder untuk MinGW, Linux, dan Windows.
  • Perubahan pada produktivitas C++ termasuk Template IntelliSense, tipsalat Info Cepat pada makro, konversi ke bola lampu constexpr, squiggle analisis kode dalam editor, dan banyak lagi.
  • Peningkatan penelusuran kesalahan C++ mencakup pembaruan Just My Code dan titik henti data baru.
  • Ada banyak peningkatan dan fitur JavaScript dan TypeScript .
  • Anda sekarang dapat mengelola pustaka sisi klien di proyek web Anda.
  • Kami menambahkan pengalaman kontainer Docker proyek tunggal baru untuk proyek web ASP.NET Core.
  • Sekarang Anda dapat menyesuaikan tag untuk gambar Docker dengan peningkatan penerbitan yang dibuat dalam rilis ini.
  • Peningkatan Xamarin mencakup dukungan untuk Xcode 9.4 dan build inkremental Android yang lebih cerdas.
  • Anda dapat menggunakan emulator Android Google secara berdampingan dengan Hyper-V pada Pembaruan Windows 10 April 2018.
  • Kami menambahkan editor tampilan terpisah untuk perancang Xamarin.Android.
  • Pemratinjau Xamarin.Forms sekarang memiliki dukungan kotak alat, dan kami memindahkannya ke editor tampilan terpisah.
  • Anda sekarang dapat menggunakan penelusuran kesalahan lintas bahasa dengan Python 3.7.0rc1.
  • Pengaturan Migrasi Azure Function lokal ke Azure sekarang menampilkan nilai baru.
  • Dengan dukungan tambahan untuk Azure Functions, Anda sekarang memiliki host target baru dalam dialog Konfigurasikan Pengiriman Berkelanjutan ke Azure.
  • Peningkatan panel ringkasan Test Explorer sekarang menyediakan status pengujian yang lebih informatif.
  • Ekstensi Adaptor Uji .NET: melanggar perubahan dan penghentian.
  • Kami menambahkan dukungan asli untuk Protokol Server Bahasa.
  • Anda sekarang memiliki dukungan rahasia untuk proyek .NET Framework ASP.NET.
  • Visual Studio sekarang membantu Anda meningkatkan aplikasi .NET Framework ASP.NET untuk meningkatkan performa build.
  • Visual Studio sekarang menawarkan alat pengembangan .NET Framework 4.7.2 ke platform yang didukung dengan runtime 4.7.2 disertakan.
  • Paket beban otomatis asinkron tertunda hingga pemuatan startup dan solusi selesai.
  • Build Tools Visual Studio 2017 sekarang mendukung Alur Kerja dan menyertakan VSSDK.
  • Status Git dan TFS sekarang diperbarui dengan benar untuk perubahan file eksternal dalam proyek .NET Core.
  • .NET Core SDK 2.1.400 disertakan.

Masalah Teratas Diperbaiki di 15.8

Ini adalah masalah yang dilaporkan pelanggan yang ditangani di 15.8:

Lihat semua masalah yang dilaporkan pelanggan yang diperbaiki di Visual Studio 2017 versi 15.8.

Portal Komunitas Pengembang


Detail Tentang Apa yang Baru di 15.8

Ikon Catatan RilisVisual Studio 2017 versi 15.8.0

dirilis pada 14 Agustus 2018

Fitur Baru di 15.8

Instal

Anda sekarang memiliki opsi untuk mengunduh semua file penginstalan sebelum memulai penginstalan Anda.

  • Untuk menggunakan opsi baru ini, pilih opsi "Unduh semua, lalu instal" di alat penginstal (Gambar 1). Kami menyarankan opsi ini jika Anda memiliki koneksi internet yang lebih lambat.
  • Opsi default tetap "Instal saat mengunduh", yang mengunduh dan menginstal secara paralel.
Unduh Otion
(Gambar 1) Opsi Unduh

Performa

Rilis ini berisi peningkatan performa berikut:

  • Peralihan cabang untuk proyek C#, VB, dan C++ jauh lebih cepat untuk solusi besar karena pemuatan ulang solusi tidak lagi diperlukan.
  • Kami mengurangi waktu untuk membongkar dan memuat ulang sekumpulan kecil proyek C# dan VB dalam solusi besar dari menit ke beberapa detik.
  • Kami menambahkan opsi untuk menonaktifkan pembukaan kembali dokumen yang terbuka di sesi sebelumnya, karena membuka kembali jenis file atau desainer tertentu dapat menunda beban solusi.
    • Alihkan opsi ini di Opsi Alat > Proyek > Solusi > > Umum.

Performa Pengujian

Kami secara signifikan meningkatkan performa saat menjalankan beberapa pengujian dalam solusi besar dengan beberapa proyek pengujian. Di laboratorium kami, solusi dengan lebih dari 10.000 MSTests menjalankan satu pengujian hingga 82% lebih cepat!

Peningkatan Performa Visual Basic

Visual Basic sekarang memberikan peningkatan performa yang signifikan saat menggunakan pola CInt(Fix(number)) untuk mengonversi dari jenis non-bilangan bulat menjadi bilangan bulat.

Pembuatan Profil Performa

Rilis ini berisi peningkatan pembuatan profil performa berikut:

  • Kami menambahkan kemampuan untuk mulai membuat profil dalam keadaan dijeda:

    • Alat Penggunaan CPU di Profiler Performa (ALT-F2) sekarang dapat dimulai dalam keadaan dijeda (Gambar 2). Ini dapat berguna saat menunggu skenario yang layak untuk penyelidikan Penggunaan CPU. Jika pengumpulan penggunaan CPU dinonaktifkan saat startup, Profiler Performa tidak akan mengumpulkan data tumpukan sampel penggunaan CPU hingga diaktifkan secara khusus. Ini menghasilkan sejumlah kecil data untuk dikumpulkan dan dianalisis, sehingga membuat penyelidikan performa Anda lebih efisien.

    • Untuk memulai sesi dengan kumpulan sampel Penggunaan CPU dinonaktifkan, klik ikon roda gigi di samping Penggunaan CPU pada halaman peluncuran Profiler Performa. Pada halaman properti Penggunaan CPU, hapus centang Aktifkan Pembuatan Profil CPU (Pengambilan Sampel) dan klik OK untuk menyimpan pengaturan.

      Halaman pengaturan Alat Penggunaan CPU
      (Gambar 2) Pengaturan Alat Penggunaan CPU
    • Setelah Anda memulai aplikasi target (klik Mulai pada halaman peluncuran Profiler Performa), Anda akan melihat grafik pemanfaatan CPU (Gambar 3) yang memungkinkan Anda mengontrol pembuatan profil CPU. Untuk mengaktifkan pengumpulan data tumpukan sampel penggunaan CPU, pilih Aktifkan pembuatan profil CPU di tengah tampilan, atau klik Rekam Profil CPU tepat di bawah grafik pemanfaatan CPU. Anda dapat mengklik Rekam Profil CPU untuk mengaktifkan/menonaktifkan pengumpulan data sampel sebanyak yang Anda inginkan. Warna grafik pemanfaatan CPU berubah untuk menunjukkan apakah pengumpulan sampel diaktifkan/dinonaktifkan pada saat itu.

      Tampilan pemantauan Alat Penggunaan CPU
      (Gambar 3) Grafik Pemanfaatan Penggunaan CPU
  • Kami menambahkan alat Pelacakan Alokasi Objek .NET:

    • Alat Pelacakan Alokasi Objek .NET bergabung dengan keluarga alat yang tersedia dari Profiler Performa. Memanggil alat ini untuk sesi profiler performa memulai pengumpulan jejak tumpukan untuk setiap alokasi objek .NET yang terjadi di aplikasi target. Data tumpukan ini dianalisis bersama dengan jenis objek dan informasi ukuran untuk mengungkapkan detail aktivitas memori aplikasi Anda. Anda dapat dengan cepat menentukan pola alokasi dalam kode Anda dan mengidentifikasi anomali. Selain itu, untuk peristiwa Pengumpulan Sampah (GC), Anda dapat dengan mudah menentukan objek mana yang dikumpulkan dan dipertahankan dan dengan cepat mengidentifikasi jenis objek yang mendominasi penggunaan memori aplikasi.
    • Ini sangat berguna bagi penulis API untuk membantu meminimalkan alokasi. Banyak aplikasi akan melampaui batas buffer yang terlibat dalam pengumpulan data diagnostik, tetapi aplikasi pengujian kecil yang menggunakan skenario kunci API dapat didiagnosis dengan cukup baik. Saat aplikasi pengujian Anda dijalankan, Profiler Performa menampilkan grafik baris Objek Langsung (hitungan), serta grafik batang Object Delta (% change).
    • Untuk menggunakan Alat Pelacakan Alokasi Objek .NET, tampilkan halaman peluncuran Profiler Performa (Gambar 4), pilih target ke profil (target default adalah proyek startup dalam solusi), periksa Pelacakan Alokasi Objek .NET di bawah Alat yang Tersedia, lalu klik Mulai.
    Halaman peluncuran Profiler Performa
    (Gambar 4) Halaman Peluncuran Profiler Performa

Pembuatan Profil Performa (Penggunaan CPU)

Rilis ini berisi peningkatan berikut pada alat Penggunaan CPU Profiler Performa (tersedia melalui ALT-F2):

  • Tampilan Pohon Panggilan sekarang menampilkan eksekusi asinkron dengan tumpukan panggilan logis secara default. Anda dapat menonaktifkan perilaku ini dengan menghapus centang opsi Stitch Async Code di menu dropdown Filter tampilan utama Penggunaan CPU.
  • Kami menambahkan tampilan Modul/Fungsi yang menampilkan informasi performa berdasarkan modul (dll) dan berdasarkan fungsi dalam modul. Seseorang dapat menampilkan tampilan Modul/Fungsi dari menu konteks yang tersedia saat memilih fungsi dalam tampilan utama Penggunaan CPU, atau dari menu dropdown Tampilan di tampilan Pohon Panggilan atau Pemanggil/Callee.
  • Indikasi instans telah ditambahkan ke grafik Penggunaan CPU dalam tampilan utama alat Penggunaan CPU. Anda dapat melihat instans saat fungsi dijalankan (misalnya, pada tumpukan) dengan mengklik dua kali fungsi yang tercantum dalam salah satu tampilan Penggunaan CPU.

Produktivitas

Rilis ini berisi peningkatan produktivitas berikut:

  • Anda dapat melakukan pembersihan kode tambahan dengan Format Dokumen (Ctrl + K, D atau Ctrl + E, D) untuk pengembangan C#. Konfigurasikan pembersihan dengan masuk ke Alat>Opsi>Editor>Teks C#>Code Style>Formatting>General.
  • Kami menambahkan lebih banyak refaktor dan tindakan cepat menggunakan Ctrl + . atau Alt + Enter:
    • Invert If memungkinkan Anda untuk mengubah logika Anda dalam pernyataan if-else. Tempatkan kursor Anda di if kata kunci untuk memicu pemfaktoran ulang ini.
    • Menambahkan parameter dari callsite metode memungkinkan Anda menambahkan parameter ke metode dengan menambahkan argumen ke callsite metode dan memicu Tindakan Cepat dan Pemfaktoran Ulang.
    • Menghapus tanda kurung yang tidak perlu menghapus tanda kurung di sekitar operator biner yang tidak penting untuk kompilasi. Anda dapat mengonfigurasi aturan gaya ini melalui Alat>Opsi>Editor>Teks C#>Code Style>General atau .editorconfig:
      • dotnet_style_parentheses_in_arithmetic_binary_operators
      • dotnet_style_parentheses_in_relational_binary_operators
      • dotnet_style_parentheses_in_other_binary_operators
      • dotnet_style_parentheses_in_other_operators
    • Gunakan kondisional terner dalam penugasan dan pernyataan pengembalian juga dapat dikonfigurasi sebagai aturan gaya di Opsi> Alat>... atau melalui .editorconfig:
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • Kami menambahkan perintah dan penyempurnaan baru ke jendela Buka Semua :
    • Buka Blok Penutup (Ctrl + Alt + UpArrow) memungkinkan Anda menavigasi dengan cepat ke awal blok kode penutup.
    • Buka Masalah Berikutnya/Sebelumnya (Alt + PgUp/PgDn) memungkinkan Anda untuk melompat ke masalah berikutnya/sebelumnya (kesalahan, berlekuk, bola lampu).
    • Buka Anggota (Ctrl + T, M) sekarang dilingkup ke file secara default. Anda dapat mengubah kembali ke solusi default dengan mengalihkan Cakupan ke Dokumen Saat Ini (Ctrl + Alt + C).
  • Anda sekarang dapat membuat titik penyisipan dan pilihan di beberapa lokasi arbitrer dalam file dengan beberapa dukungan tanda sisipan. Ini memungkinkan Anda untuk menambahkan, mengedit, atau menghapus teks di beberapa tempat secara bersamaan.
    • Sisipkan caret dengan Ctrl + Alt + LeftMouseClick.
    • Tambahkan pilihan dan tanda kurung di lokasi berikutnya yang cocok dengan pilihan saat ini dengan Shift + Alt + Ins.
    • Lihat Mengedit > Beberapa Caret untuk daftar lengkap tindakan.
  • Akses menu navigasi kontekstual dengan Alt + '.
  • Jaga agar keybinding Anda tetap konsisten dengan dua profil keyboard baru: Visual Studio Code dan ReSharper (Visual Studio). Anda dapat menemukan skema ini di bawah Papan Ketik Lingkungan > Opsi > Alat > dan menu drop-down atas.

Awakutu

Rilis ini berisi penyempurnaan penelusuran kesalahan berikut:

  • Ketika Anda memiliki lebih dari satu instans Visual Studio 2017 yang terinstal, Anda sekarang dapat memilih instans mana yang akan disebarkan ekstensi Anda saat penelusuran kesalahan (Gambar 5). Dengan begitu Anda dapat, misalnya, mengembangkan di saluran rilis Visual Studio saat men-debug di saluran pratinjau.

    Pilih instans debug Anda
    (Gambar 5) Pilih Instans Debug
  • Sekarang Anda dapat melampirkan Snapshot Debugger langsung dari halaman Terbitkan ringkasan (Gambar 6).

    Lampirkan Snapshot Debugger dari halaman Terbitkan Ringkasan
    (Gambar 6) Lampirkan Snapshot Debugger dari Ringkasan Publikasi
  • Kami sekarang mendukung melihat Tugas Terkelola melalui jendela Tugas saat men-debug minidump dengan timbunan.

Alat untuk pengembang Platform Windows Universal

Kami melakukan banyak peningkatan penting pada perancang XAML untuk proyek yang menargetkan Platform Windows Universal dengan versi platform target dari Windows 10 Fall Creators Update (build 16299) atau yang lebih baru. Penyempurnaan tersebut meliputi:

  • Sekarang Anda dapat mengedit koleksi di Pemeriksa Properti.
  • Perancang sekarang memungkinkan Templat dan Gaya untuk diedit, termasuk ketika definisi untuk entitas tersebut didefinisikan dalam dokumen lain.
  • Properti jenis IconElement (seperti Ikon di AppBarButton) sekarang memiliki editor kustom di Pemeriksa Properti membuat properti ini lebih mudah diatur.
  • Perancang, editor, dan Edit dan Lanjutkan sekarang semuanya harus berfungsi dengan benar dengan x:DefaultBindMode.
  • Pengalaman Visual State Manager di Blend sekarang mendukung AdaptiveTrigger.

Alat F# 4.5 dan F# untuk Visual Studio

Kami memperkenalkan bahasa F# versi 4.5 dengan rilis ini. Ini juga sesuai dengan keluarga 4.5.x baru FSharp.Core (pustaka inti F#). Anda dapat membaca spesifikasi untuk setiap perubahan ini di repositori F# RFC. Ada juga banyak peningkatan alat F# untuk Visual Studio dengan rilis ini.

F# 4.5

Berikut adalah beberapa sorotan dengan bahasa F# versi 4.5:

Dukungan Span'T<>

Kami menerapkan fitur dan terkait sehingga konsumsi dan produksi API yang efektif menggunakan Span, , Memorydan refkonstruksi seperti dimungkinkan Span<'T> dengan F#. Fitur untuk ini meliputi:

  • Jenis baru voidptr .
  • Baru NativePtr.ofVoidPtr dan NativePtr.toVoidPtr fungsi di FSharp.Core.
  • inref<'T> Jenis baru dan outref<'T>, yang masing-masing adalah byref baca-saja dan byref tulis-saja. Ini sesuai dengan in ref dan out ref dalam C#.
  • Kemampuan untuk menghasilkan ByRefLike struktur (seperti Span dan ReadOnlySpan).
  • Kemampuan untuk menghasilkan IsReadOnly struktur.
  • Dereferensi byrefimplisit dari - dan inref-returns dari metode.
  • Kemampuan untuk menghasilkan anggota ekstensi pada byrefoutref/inref/.

Set fitur ini memperbaiki bug dalam desain byrefawal -returns di F# 4.1, di mana fungsi, metode, dan properti yang mengembalikan byref's tidak secara implisit mendereferensikan nilai yang dikembalikan. Kami membuat perubahan ini untuk membawa fitur sejalan dengan cara C# menangani ref-returns. Pesan kesalahan digunakan ketika anotasi jenis menunjukkan bahwa dereferensi implisit dari - refpengembalian sekarang digunakan.

Selain itu, set fitur ini juga memperbaiki bug di kompilator F# di mana "Penggantian struct jahat" dimungkinkan; yaitu, memanggil metode pada struktur F# dapat menggantikan struktur aktual yang dipanggil dengan yang berbeda. Parameter this pada struct sekarang dianggap sebagai inref<MyStruct>, dengan kesalahan yang menyarankan Anda menambahkan bidang yang dapat diubah jika Anda ingin mengubah struct.

Anda dapat mempelajari selengkapnya tentang span dan ref-seperti konstruksi di RFC untuk set fitur ini.

Korek api! dalam ekspresi komputasi

F# 4.5 memperkenalkan match!, kata kunci baru untuk digunakan dalam ekspresi komputasi, yang sepenuhnya disumbangkan oleh John Wostenberg. Gula sintaktik ini setara let! dengan diikuti dengan match pada hasilnya. Anda dapat mempelajari lebih lanjut di RFC untuk match!.

Melonggarkan kebutuhan untuk meningkatkan dengan yield secara berurutan, daftar, dan ekspresi array

F# 4.5 sekarang melonggarkan beberapa kasus di mana upcast saat menggunakan yield diperlukan untuk mengonversi subjenis menjadi supertipe. Pembatasan ini sudah tidak diperlukan untuk ekspresi ini sejak F# 3.1 saat tidak menggunakan yield, sehingga ini membuat hal-hal lebih konsisten dengan perilaku yang ada. Anda dapat mempelajari lebih lanjut di RFC untuk fitur ini.

Mengizinkan indentasi pada kurung daftar dan array

F# 4.5 sekarang melonggarkan aturan indentasi untuk kurung daftar dan array yang mengharuskannya untuk diinden satu cakupan ke depan ketika berada di baris mereka sendiri. Persyaratan sebelumnya ini selalu cukup membingungkan, terutama untuk pemula ke F#. Selain itu, tidak diperlukan untuk ekspresi urutan F#. Ini sekarang membawa ekspresi array dan daftar ke status konsisten yang sama dengan ekspresi urutan. Anda dapat mempelajari lebih lanjut di RFC untuk fitur ini.

Kasus Enum yang dipancarkan sebagai publik

F# 4.5 sekarang memancarkan kasus enumerasi sebagai publik dalam semua keadaan, untuk menyelaraskan dengan bagaimana C# memancarkan kasus enumerasi. Ini juga memudahkan alat pembuatan profil untuk menganalisis log dari kode F#, di mana nilai daripada nama label dipancarkan. Anda dapat mempelajari lebih lanjut di RFC untuk fitur ini.

Peningkatan Kompilator F#

Peningkatan pada kompilator F# selain fitur bahasa yang disebutkan sebelumnya ada di F# 4.5. Ini termasuk:

  • Kami meningkatkan pekerjaan performa kompilator dengan menghapus hingga 2,2% dari semua alokasi di kompilator F# (di bawah berbagai skenario).
  • Kami memperbaiki bug yang menghasilkan AccessViolatioNException saat menggunakan yield! dengan enumerable berbasis struct.
  • Sekarang dimungkinkan untuk mewarisi dari FSharpFunc lagi.
  • Panggilan ekor dinonaktifkan secara default untuk build debug F# untuk .NET Core. Mereka diaktifkan untuk rilis, sehingga cocok dengan kompilator F# desktop.
  • Normalisasi referensi F# telah diperbaiki untuk memungkinkan Anda mengontrol referensi rakitan transitif yang ditulis ke file output. Ini memungkinkan Anda untuk melakukan pengalihan rakitan yang setara pada .NET Core.
  • Kami memperbaiki bug di mana pesan kesalahan yang digunakan saat mencoba menggunakan pemanggilan dinamis pada fungsi sebaris diabaikan. Pesan kesalahan sekarang disebarluaskan.
  • F# sekarang menghormati WarningsNotAsErrors bendera yang dapat Anda atur dalam file proyek.
  • Ketika cabang kecocokan pola tidak mengembalikan kondisi jenis pesan kesalahan yang sama, telah diperbarui menjadi lebih ramah oleh Isaac Abraham.
  • Bug kesalahan internal ketika mengompilasi implementasi antarmuka yang tidak memiliki implementasi metode yang kelebihan beban telah diperbaiki oleh Steffen Forkmann.
  • Beberapa penyalinan array yang tidak perlu dalam fase lexing pengkompilasi telah dihapus oleh Gauthier Segay.
  • Kecocokan pola yang tidak lengkap pada enumerasi F# sekarang menghasilkan peringatan terperinci yang memberikan contoh kasus yang tidak tercakup, dikontribusikan oleh John Wostenberg.
  • '#nowarn "2003" sekarang dihormati, disumbangkan oleh Matthias Diitrich.
  • Bug di mana menggunakan metode ekstensi C# dapat gagal dalam resolusi kelebihan beban F# telah diperbaiki oleh Steffen Forkmann.
  • Bug struktur data QueueList internal diperbaiki oleh Steffen Forkmann.
  • Berbagai pengoptimalan yang lebih kecil dan upaya pembersihan kode disumbangkan oleh Steffen Forkmann, Eugene Auduchinok, dan ncave.

Pustaka F# Core 4.5.x

Penambahan berikut ke Pustaka F# Core sekarang tersedia:

  • Pekerjaan signifikan telah dilakukan untuk meningkatkan jejak tumpukan untuk async { } ekspresi komputasi. Anda sekarang dapat melihat kode pengguna dan nomor baris pengguna dalam jejak tumpukan. Anda dapat mempelajari lebih lanjut di RFC untuk fitur ini.
  • FuncConvert.FromFunc dan FuncConvert.FromAction API yang jenis System.Func dan System.Action kelebihan beban, untuk membantu dalam interoperatasi dengan C#. Anda dapat mempelajari lebih lanjut di RFC untuk fitur ini.
  • ValueOption adalah jenis baru yang tersedia, yang merupakan yang pertama dalam serangkaian fitur di masa depan pada akhirnya ditujukan untuk performa yang lebih baik untuk Pola Aktif. Anda dapat mempelajari lebih lanjut di RFC untuk fitur ini.
  • TryGetValue sekarang menjadi anggota baru pada jenis F# Map. Anda dapat mempelajari lebih lanjut di RFC untuk fitur ini.
  • Kami memperbaiki penggunaan CPU Tinggi pada pemanggilan MailboxProcessor.TryReceivepertama .
  • Perbandingan untuk bool saat ini menggunakan perbandingan umum yang cepat, disumbangkan oleh Vasily Kirichenko.
  • Teks ringkasan untuk Array.allPairs telah diperbarui menjadi benar, disumbangkan oleh Patrick McDonald

Peningkatan Alat F#

Peningkatan signifikan dalam alat F#, seperti peningkatan performa dan beberapa fitur editor baru disertakan dalam rilis ini. Seperti biasa, dengan sejumlah besar kontribusi dari komunitas F# sumber terbuka. Berikut adalah sorotannya:

  • Kami meningkatkan performa IntelliSense untuk proyek gaya .NET SDK dari semua bentuk, termasuk yang menggunakan multi-penargetan.
  • Upaya berbasis komunitas untuk menganalisis dan meningkatkan performa IntelliSense untuk file yang sangat besar dikontribusikan oleh Vasily Kirichenko, Steffen Forkmann, dan Gauthier Segay. IntelliSense dalam file yang sangat besar (10k+ baris kode) kira-kira dua kali lebih cepat sekarang.
  • Peringatan untuk FSharp.Core yang sudah ketinggalan jaman (meskipun paket sedang diinstal) tidak lagi ada dalam proyek gaya .NET SDK.
  • Tipsalat deskripsi yang menampilkan dokumentasi XML untuk anggota setelah . di IntelliSense tidak lagi kehabisan waktu setelah 10 detik.
  • Bug di mana Anda tidak dapat mengatur titik henti dalam argumen konstruktor objek telah diperbaiki.
  • Bug di mana simbol yang diganti namanya akan diduplikasi ketika parameter generik telah diperbaiki.
  • Templat untuk .NET Framework (templat F# klasik) sekarang menggunakan FSharp.Core dari paket NuGet, untuk menyelaraskan dengan templat .NET SDK F#.
  • Penyelesaian kurung kurawal transaksi otomatis sekarang tersedia untuk ()pasangan kurung kurawal , [], {}, [||], dan [<>] . Kami melakukan pekerjaan ini bekerja sama dengan Gibran Rosa.
  • Anda sekarang dapat masuk ke definisi dengan Ctrl + Klik pada simbol F#. Pengaturan untuk gerakan ini juga dihormati di jendela Opsi Alat>.
  • UI performa IntelliSense telah dimodifikasi untuk memungkinkan konfigurasi informasi pemeriksaan jenis kedaluarsa untuk berbagai fitur IDE. Penjelasan untuk setiap opsi sekarang ada di tipsalat untuk pengaturan.
  • Penyorotan pencocokan kurung kurawal sekarang dengan benar menyoroti kurung kurawal, selesai bekerja sama dengan Vasily Kirichenko.
  • Buka definisi sekarang menavigasi dengan benar ketika jenis didefinisikan secara rekursif, dikontribusikan oleh Vasily Kirichenko.
  • Bug di mana namespace layanan yang diimpor otomatis tidak dibuka ketika bagian atas file kosong telah diperbaiki oleh Vasily Kirichenko.
  • Bug di mana printf penentu yang berisi titik-titik salah warna telah diperbaiki oleh Vasily Kirichenko.
  • Bug di mana semua buka dianggap tidak digunakan di dalam modul rekursif telah diperbaiki oleh Vasily Kirichenko.
  • Performa penganalisis Unused Opens telah ditingkatkan secara signifikan oleh Vasily Kirichenko.
  • Pelengkapan otomatis untuk atribut sekarang hanya menyarankan opsi yang sebenarnya merupakan atribut, yang dikontribusikan oleh Vasily Kirichenko.
  • Tipsalat Bantuan Tanda Tangan sekarang dihasilkan untuk parameter statis Penyedia Tipe di situs panggilan konstruktor, yang dikontribusikan oleh Vasily Kirichenko.
  • Bug di mana jenis nilai yang digunakan sebagai unit pengukuran diwarnai sebagai jenis referensi telah diperbaiki oleh Vasily Kirichenko.
  • Bug di mana pewarnaan semantik dapat hilang untuk beberapa file saat menggulir telah diperbaiki oleh Vasily Kirichenko.
  • Sekarang ada implementasi CodeLens eksperimental, yang disumbangkan oleh Victor Peter Rouven Müller. Anda dapat mengaktifkannya di Options Text Editor > F# > Code Lens>.
  • Bug di mana layanan pengompilasi F# salah akan mengalihkan nama modul dalam dokumentasi XML telah diperbaiki oleh Sebastian Urban.
  • Kode yang menggunakan Dictionary dengan ContainsKey dan panggilan berikutnya Item telah diubah untuk menggunakan TryGetValue, oleh Eugene Auduchinok.
  • Jakob Majoka juga berkontribusi dalam proses mengkonsumsi API yang berbeda untuk Tooltips.

Peningkatan Infrastruktur, Kemasan, dan Sumber Terbuka

Kami melakukan penyempurnaan berikut untuk infrastruktur, pengemasan, dan pengalaman kontribusi sumber terbuka kami:

  • Pengkompilasi F# yang didistribusikan dengan Visual Studio tidak lagi diinstal sebagai singleton di lokasi F# Compiler SDK. Ini sekarang sepenuhnya berdampingan dengan Visual Studio, yang berarti bahwa penginstalan Visual Studio secara berdampingan akhirnya akan memiliki alat dan pengalaman bahasa F# yang benar-benar berdampingan.
  • Paket FSharp.Core NuGet sekarang ditandatangani.
  • Pengelogan ETW telah ditambahkan ke alat dan pengkompilasi F#.
  • File yang sangat besar control.fscontrol.fsi/di FSharp.Core telah dibagi menjadiasync.fsiasync.fs/ , , event.fseventmodule.fseventmodule.fsi/event.fsi/,/mailbox.fsimailbox.fs , dan .observable.fs/observable.fsi
  • Kami menambahkan versi gaya .NET SDK dari artefak uji stres performa proyek kami.
  • Kami menghapus Newtonsoft.json dari basis kode kami, dan Anda sekarang memiliki satu paket lebih sedikit yang diunduh untuk kontributor OSS.
  • Kami sekarang menggunakan versi terbaru System.Collections.Immutable dan System.Reflection.Metadata.

Penyempurnaan C++ Kesuaian dan Toolset

Rilis ini berisi penyempurnaan kesesuaian C++ dan toolset berikut:

  • Preprosedur baru berbasis token eksperimental yang sesuai dengan standar C++11 (termasuk fitur preprosedur C99), diaktifkan dengan sakelar /experimental:preprocessor. Ini dikontrol dengan makro _MSVC_TRADITIONAL, yang didefinisikan 1 saat menggunakan praprosesor tradisional dan 0 saat menggunakan standar eksperimental baru praprosesor yang sesuai.
  • Prompt Perintah Pengembang Visual Studio mendukung pengaktifan runtime yang dimitigasi varian Visual C++ Spectre (-vcvars_spectre_libs = spectre). Informasi selengkapnya tentang mitigasi Spectre tersedia di Blog Tim Visual C++.
  • Dua tambahan baru ke Pengoptimal SSA yang berfokus pada pembuatan kode C++ modern: eliminasi penyimpanan redundan dan pelipatan cabang redundan.
  • Memori yang dioptimalkan memetakan performa I/O di linker untuk mengurangi waktu tautan.

Pengembangan Lintas Platform C++

Kami menambahkan, meningkatkan, dan menambahkan hal berikut ke pengembangan lintas platform C++ untuk rilis ini:

  • Menambahkan templat Tambahkan>Item Baru untuk menghasilkan file berformat .clang mengikuti konvensi pengkodian yang ditentukan untuk ClangFormat di Opsi Alat.> Jika konvensi Visual Studio dipilih, file yang dihasilkan mencoba mencocokkan konfigurasi pemformatan Visual Studio pengguna saat ini dari Opsi Alat>.
  • Memperbarui versi clang-format.exe yang dikirim ke 6.0.0.
  • Templat untuk menyederhanakan penambahan konfigurasi ke CppProperties.json.
  • Menambahkan templat untuk menyederhanakan penambahan konfigurasi ke CMakeSettings.json (Gambar 7).
Templat konfigurasi untuk CMake
(Gambar 7) Templat Konfigurasi untuk CMake

Produktivitas C++

Kami melakukan penyempurnaan dan peningkatan produktivitas C++berikut:

  • Tipsalat Info Cepat C++ pada makro sekarang menunjukkan apa yang diperluas, bukan hanya definisinya. Ini sangat berguna untuk makro kompleks yang mereferensikan makro lain karena mengklarifikasi apa yang digantikan oleh pengidentifikasi makro oleh prapemroses.
  • Menambahkan bola lampu perbaikan cepat baru untuk mengonversi makro dasar ke constexpr sebagai alat baru untuk memodernisasi kode.
  • IntelliSense untuk templat memberi Anda detail selengkapnya tentang argumen templat untuk memanfaatkan IntelliSense sepenuhnya dalam isi templat Anda (Gambar 8).
IntelliSense Templat
(Gambar 8) Templat IntelliSense
  • Kami berupaya menyegarkan pengalaman analisis kode kami. Sekarang Anda dapat mengaktifkan fitur baru yang sedang berlangsung di bawah Opsi>Alat>Editor>Teks C++>Analisis Kode Eksperimental.> Analisis kode dapat berjalan di latar belakang ketika file dibuka atau disimpan, dan hasil ditampilkan dalam daftar kesalahan dan sebagai berlekuk hijau di editor (Gambar 9).
Analisis kode dalam editor
(Gambar 9) Analisis Kode Dalam Editor

Penyempurnaan Penelusuran Kesalahan C++

Kami melakukan penyempurnaan penelusuran kesalahan berikut:

  • Just My Code sekarang memungkinkan Anda untuk melangkahi kode dari sistem atau pustaka C++ pihak ke-3 selain menciutkan panggilan tersebut di jendela tumpukan panggilan. Anda dapat mengontrol perilaku ini untuk pustaka C++ apa pun saat kode Anda dikompilasi dengan /JMC dan jalur pustaka non-pengguna ditentukan dalam file .natjmc. Jika pustaka sistem memanggil kode pengguna, saat Anda masuk, debugger melewati semua kode sistem dan berhenti pada baris pertama panggilan balik kode pengguna (Gambar 10).
Hanya Kode Saya
(Gambar 10) Hanya Kode Saya
  • Titik henti data sekarang dapat diatur di dalam jendela Watch, Quickwatch, Autos, dan Locals, memungkinkan Anda untuk istirahat saat nilai yang disimpan dalam memori berubah hanya dalam beberapa klik pendek.
  • Source Link memungkinkan Anda menyematkan informasi tentang kode sumber asli yang dapat dieksekusi atau pustaka ke dalam PDB selama kompilasi.
  • Saat penelusuran kesalahan, jendela konsol sekarang tetap terbuka secara default ketika program mengakhiri eksekusi (mirip dengan menjalankan program tanpa debugger). Perilaku ini dapat diubah kembali untuk menutup konsol secara otomatis di Alat > Opsi > Debugging > Umum.

Peningkatan JavaScript dan TypeScript

TypeScript 3.0

Visual Studio 2017 versi 15.8 sekarang menyertakan TypeScript 3.0 secara default. Untuk detail selengkapnya tentang rilis ini, lihat pengumuman rilis TypeScript 3.0.

Dukungan Vue.js yang disempurnakan

Dukungan untuk pustaka Vue.js telah ditingkatkan, dan khususnya dukungan untuk file .vue, juga dikenal sebagai "komponen file tunggal". Ini memberikan penyempurnaan saat mengedit blok skrip di dalam file .vue, termasuk dukungan untuk blok skrip yang ditulis di TypeScript melalui lang="ts" atribut pada elemen skrip. (Catatan: Proses build menggunakan WebPack atau sejenisnya harus digunakan untuk mengonversi file .vue ke file HTML dan JS yang diperlukan saat runtime. Lihat halaman Komponen File Tunggal untuk detail selengkapnya).

Jika beban kerja Node.js diinstal, sekarang akan ada templat "Dasar Vue.js Aplikasi Web" di bawah jalur "JavaScript / Node.js" atau "TypeScript / Node.js" dalam dialog Proyek Baru. Di bawah ini menunjukkan contoh pengeditan kode TypeScript di dalam blok skrip dalam file .vue (Gambar 11).

Mengedit file .vue
(Gambar 11) Mengedit File .vue

Peningkatan ESLint

Kami melengkapi kembali dukungan ESLint untuk rilis ini. ESLint memiliki peningkatan dan peningkatan berikut:

  • Daripada hanya menautkan file yang disimpan, Visual Studio sekarang akan lint file JavaScript saat Anda mengedit juga.
  • Hasil dapat dilaporkan untuk semua file JS dalam proyek Anda, bukan hanya membuka file; jika ada bagian proyek yang tidak ingin Anda linted, file .eslintignore sekarang dapat digunakan untuk menentukan direktori dan file yang harus diabaikan.
  • ESLint diperbarui untuk menggunakan ESLint 4 secara default, tetapi jika proyek Anda memiliki penginstalan lokal ESLint, itu akan menggunakan versi tersebut sebagai gantinya.

ESLint dapat dinonaktifkan secara global di Visual Studio dengan menghapus centang pengaturan Aktifkan ESLint di **Opsi > Alat > Editor > Teks Javascript/Typescript > Linting ** (Gambar 12).

Opsi ESLint
(Gambar 12) Opsi ESLint

Buka Penyempurnaan Folder untuk Node.js

Ada banyak peningkatan yang bekerja dengan JavaScript dan TypeScript dalam skenario Buka Folder saat "Node.js beban kerja" diinstal. Misalnya, mengelola paket NPM, membangun TypeScript, meluncurkan dan men-debug dengan Node.exe, menjalankan skrip NPM, dan menjalankan pengujian unit.

Lihat Mengembangkan kode JavaScript dan TypeScript di Visual Studio tanpa solusi atau proyek} untuk informasi selengkapnya.

Peningkatan Performa Editor

Dalam rilis sebelumnya, semua operasi layanan bahasa JavaScript dan TypeScript dilayankan oleh satu proses Node.js. Ini dapat menyebabkan penundaan editor jika perintah yang memengaruhi pengetikan pengguna (seperti pemformatan otomatis setelah baris baru) dikirim sementara operasi yang berpotensi panjang sudah dalam proses (seperti menganalisis kode untuk kesalahan). Untuk mengurangi hal ini, proses terpisah sekarang digunakan untuk operasi yang paling berdampak pada pengeditan. Proses ini secara signifikan lebih ringan pada sumber daya sistem daripada proses layanan bahasa yang ada. Namun, jika Anda ingin menonaktifkan proses baru, centang kotak Nonaktifkan proses sintaksis khusus di Opsi Alat > Editor > > Teks JavaScript/TypeScript > Language Service.

Alat Web Visual Studio

Library Manager adalah fitur baru yang disertakan dalam Visual Studio 2017. Ini membantu Anda mengelola pustaka sisi klien di proyek web Anda.

Alat Kontainer

Kami menambahkan pengalaman kontainer Docker proyek tunggal baru untuk proyek web ASP.NET Core. Ini melengkapi alat kontainer berbasis Docker Compose yang ada dan menyediakan cara yang lebih sederhana dan lebih mudah untuk membuat, men-debug, dan membangun kontainer Docker langsung dari Visual Studio.

Anda dapat menambahkan dukungan Docker saat membuat proyek (Gambar 13):

Aktifkan Dukungan Docker
(Gambar 13) Aktifkan Dukungan Docker

Atau, Anda dapat mengaktifkan dukungan Docker ke proyek yang ada melalui menu konteks proyek di Penjelajah Solusi (Gambar 14). Setelah Anda melakukan ini, Visual Studio membuat satu Dockerfile dalam proyek. Anda memiliki opsi untuk memilih Windows atau Linux.

Tambahkan Dukungan Docker
(Gambar 14) Tambahkan Dukungan Docker

Visual Studio juga menambahkan profil peluncuran debugger (Gambar 15) untuk Docker sehingga proyek dapat di-debug saat berjalan dalam kontainer.

Profil Peluncuran Docker
(Gambar 15) Profil Peluncuran Docker

Jika Anda memiliki solusi dengan beberapa proyek Docker, secara default, hanya satu kontainer yang berjalan saat Anda memilih untuk memulai solusi. Jika Anda ingin menjalankan beberapa kontainer secara bersamaan, Anda dapat mengklik kanan solusi di Penjelajah Solusi dan memilih Atur Proyek Startup lalu Beberapa proyek startup, lalu atur drop-down Tindakan ke Mulai atau Mulai tanpa penelusuran kesalahan untuk semua proyek yang ingin Anda jalankan.

Setelah proyek kontainer Anda berjalan seperti yang Anda inginkan, Anda dapat mengklik kanan proyek dan memilih Bangun Gambar Docker untuk membangun gambar secara lokal, ketika siap untuk mendorong ke Azure Container Registry atau DockerHub.

Anda juga dapat menambahkan fungsionalitas berbasis Docker Compose yang ada ke proyek web ASP.NET Core melalui opsi Dukungan Orkestrator Kontainer baru (Gambar 16). Klik kanan proyek web ASP.NET Core di Penjelajah Solusi, pilih Tambahkan > Dukungan Orkestrator Kontainer, lalu pilih Docker Compose dari menu drop-down.

Menambahkan Dukungan Orkestrator Kontainer
(Gambar 16) Menambahkan Dukungan Orkestrasi

Mempublikasikan Penyempurnaan

Rilis ini berisi peningkatan penerbitan berikut:

  • Saat menerbitkan kontainer Docker ke registri kontainer, Anda sekarang dapat menyesuaikan tag untuk gambar tersebut. Anda dapat menambahkan tag secara manual (defaultnya adalah "terbaru") atau menggunakan tag yang dibuat secara otomatis untuk memastikan setiap tag unik.
  • Saat membuat Azure App Service baru, Anda juga dapat mengonfigurasi Application Insights untuk mengumpulkan telemetri secara otomatis. Jika Anda memilih wilayah yang juga memiliki Application Insights, wilayah tersebut diaktifkan secara default. Jika Anda memilih wilayah yang belum berisi Application Insights, Anda dapat menentukan wilayah yang berbeda secara manual untuk sumber daya Application Insights Anda dari menu dropdown.
  • Saat menerbitkan proyek Azure Functions, Anda dapat memilih untuk menerbitkan menggunakan fitur Run-From-Zip baru.

Alat Visual Studio Tools untuk Xamarin

Rilis ini berisi pembaruan berikut untuk Xamarin:

  • Kami menambahkan dukungan untuk Xcode 9.4.
  • Saat Anda membuat proyek Xamarin.Forms baru, opsi berbagi kode default sekarang adalah .NET Standard. Opsi proyek bersama masih tersedia.
  • Kami menambahkan peningkatan build inkremental Android. Xamarin.Android menggunakan file yang dihasilkan dalam direktori output perantara untuk mencapai build bertahap yang lebih cepat daripada build penuh. Sebelumnya, jika Anda mengubah kerangka kerja target proyek, itu akan membatalkan file dan menghasilkan build penuh pada eksekusi berikutnya. Dalam rilis ini, kami sekarang mempertahankan file dalam folder per kerangka kerja sehingga Anda dapat beralih di antara kerangka kerja target yang berbeda dan masih mendapat manfaat dari build inkremental. Membersihkan proyek memungkinkan Anda untuk mengklaim kembali ruang disk yang digunakan oleh file yang dipertahankan.
  • Kami telah menambahkan dukungan minimum untuk proyek pengikatan Xamarin.Mac di Visual Studio 2017. Ini memungkinkan Visual Studio memuat dan mengenali proyek pengikatan Xamarin.Mac sebagaimana didukung. Anda juga dapat membangun proyek pengikatan Xamarin.Mac. Namun, proses build dilakukan secara lokal tanpa menggunakan rantai alat Mac asli, sehingga rakitan IL yang dihasilkan tidak dapat digunakan untuk menjalankan atau menelusuri kesalahan di app.

Dukungan Emulator Android Hyper-V

Rilis ini menambahkan dukungan untuk emulator Google Android yang kompatibel dengan Hyper-V saat berjalan pada Pembaruan Windows 10 April 2018 (Gambar 17). Ini memungkinkan Anda menggunakan emulator Android Google secara berdampingan dengan teknologi berbasis Hyper-V lainnya, termasuk komputer virtual Hyper-V, alat Docker, emulator HoloLens, dan banyak lagi. Pengembang aplikasi seluler yang menggunakan Hyper-V sekarang memiliki akses ke emulator Android cepat yang selalu mendukung API Android terbaru, bekerja dengan Google Play Services di luar kotak, dan mendukung semua fitur emulator Android, termasuk kamera, geolokasi, dan Quick Boot.

Cuplikan layar emulator Google Android dan emulator HoloLens berjalan secara bersamaan.
(Gambar 17) Emulator Google Android dan Emulator HoloLens

Xamarin.Android Designer

Kami melakukan peningkatan signifikan pada pengalaman desainer untuk Xamarin.Android. Sorotan meliputi:

  • Editor tampilan terpisah diperkenalkan yang memungkinkan Anda membuat, mengedit, dan mempratinjau tata letak Anda secara bersamaan (Gambar 18).
Cuplikan layar editor split-view Xamarin.Android.
(Gambar 18) Xamarin.Android Split-view Editor
  • Pengalaman IntelliSense yang ditingkatkan dan keandalan kontrol kustom.
  • Contoh dukungan data untuk nilai yang disediakan sistem.

Pemratinjau Xamarin.Forms

Xamarin.Forms Previewer sekarang memiliki dukungan kotak alat saat menggunakan Xamarin.Forms versi 3.1.0.583944 atau lebih tinggi. Kontrol Xamarin.Forms akan muncul di kotak alat sehingga lebih dapat ditemukan bagi mereka yang baru menggunakan toolkit. Anda juga dapat menyeret dan menghilangkan kontrol ke editor kode XAML untuk menambahkan kontrol ke halaman. Xamarin.Forms Previewer sekarang menjadi bagian dari editor XAML. Anda dapat membuka dan menutupnya dengan ikon perluas di tepi panel editor.

Python

Rilis ini menambahkan peningkatan berikut untuk pengembang Python:

  • Python IntelliSense sekarang menggunakan definisi yang diketik untuk memberikan hasil yang lebih kaya untuk pustaka di mana penyelesaian otomatis tidak dapat disimpulkan oleh analisis statis.
  • Debugger eksperimental, pertama kali diumumkan dalam rilis pratinjau 15.7, sekarang menjadi mesin debug default yang digunakan untuk Python, memberikan debugging yang lebih cepat dan lebih andal untuk kode Python.
  • Kami telah menambahkan dukungan untuk fitur debugging Python 3.7, termasuk perbaikan untuk mengaktifkan fitur debug attach, profiling, dan mixed-mode (lintas bahasa).
  • Untuk informasi selengkapnya tentang fitur di atas, pastikan untuk memeriksa Python kami di posting blog Visual Studio 2017 versi 15.8 .

Memigrasikan Pengaturan Fungsi Azure Lokal

Dialog "Pengaturan Aplikasi Terkelola" yang tersedia dari halaman ringkasan penerbitan sekarang menampilkan nilai dari file local.settings.json Anda dan memungkinkan Anda untuk memigrasikan nilai ke aplikasi Azure Function jarak jauh yang dihosting di Azure.

Layanan Tersambung

Sekarang Anda dapat mengonfigurasi pengiriman berkelanjutan untuk fungsi Azure langsung dari Visual Studio 2017 untuk solusi dengan Azure Function Projects.

Uji Peningkatan Penjelajah

Test Explorer sekarang menampilkan panel ringkasan status pengujian yang lebih informatif (panel bawah penjelajah pengujian) saat salah satu pengelompokan dalam tampilan hierarki dipilih. Panel sekarang menampilkan berapa banyak pengujian yang gagal, lulus, atau tidak berjalan dalam pengelompokan tersebut.

Fitur Ekstensibilitas Baru

Protokol Server Bahasa

Visual Studio sekarang memiliki dukungan asli untuk Protokol Server Bahasa. Penulis ekstensi dapat membuat ekstensi yang berkomunikasi dengan server bahasa yang ada untuk menambahkan dukungan bahasa tambahan ke Visual Studio. Pengguna ekstensi dapat menginstal ekstensi ini untuk mulai menggunakan bahasa favorit mereka di dalam Visual Studio seperti Rust.

Templat AsyncPackage

Penulis ekstensi sekarang dapat menggunakan templat item untuk membuat AsyncPackages untuk mengoptimalkan performa ekstensi mereka. Baca selengkapnya tentang AsyncPackages.

Paket Ekstensi

Bagikan sekumpulan ekstensi favorit Anda dengan mudah atau siapkan penginstalan baru Visual Studio dengan semua ekstensi Anda dengan menggunakan paket ekstensi. Paket ekstensi memungkinkan Anda membuat daftar ekstensi, mengemasnya dalam ekstensi, dan menggunakannya dengan cepat untuk menginstal ekstensi tersebut secara massal.

Penerbitan Ekstensi Baris Perintah

Terbitkan ekstensi Anda ke Visual Studio Marketplace menggunakan baris perintah.

.NET Core SDK 2.1.400

Visual Studio 2017 versi 15.8 menyertakan .NET Core SDK 2.1.400. Fitur SDK baru meliputi:

  • Menambahkan templat NUnit
  • Menambahkan dukungan untuk alat global yang ditandatangani
  • Teks bantuan yang disempurnakan untuk kejelasan yang lebih baik

32 masalah ditutup pada .NET Core CLI.
20 masalah ditutup pada .NET Core SDK.

Kontrol Sumber

Untuk proyek .NET Core, file yang ditambahkan langsung ke proyek melalui File Explorer sekarang akan menampilkan ikon pelacakan Git dan TFS yang benar di Penjelajah Solusi tanpa perlu memuat ulang solusi.

Ekstensi Adaptor Uji .NET

Adaptor Uji .NET memiliki perubahan dan penghentian berikut:

  • Breaking Change: Semua proyek pengujian harus menyertakan referensi NuGet adaptor uji .NET mereka dalam csproj mereka. Jika tidak, output pengujian ini akan muncul pada proyek jika penemuan oleh ekstensi adaptor pengujian dimulai setelah build atau jika pengguna mencoba menjalankan pengujian yang dipilih:
    • Proyek pengujian {<Jalur lengkap proyek> pengujian} tidak mereferensikan adaptor .NET NuGet apa pun. Penemuan atau eksekusi pengujian mungkin tidak berfungsi untuk proyek ini. Disarankan untuk mereferensikan adaptor pengujian NuGet di setiap proyek pengujian dalam solusi.
  • Kerangka kerja pengujian .NET telah merilis adaptor mereka dalam paket NuGet dan menjauh dari ekstensi Visual Studio. Dukungan untuk adaptor pengujian .NET yang dikirimkan melalui ekstensi tidak digunakan lagi, tetapi masih didukung. Ini berarti bahwa dua opsi baru tersedia dalam Pengujian Opsi > Alat>.
    • Opsi pertama memungkinkan Visual Studio untuk hanya menggunakan adaptor pengujian yang ditemukannya di folder rakitan pengujian (diisi oleh referensi NuGet adaptor pengujian) atau seperti yang ditentukan dalam file runsettings.
    • Opsi kedua memungkinkan Visual Studio untuk "fallback" ke perilaku lama dan mencari ekstensi adaptor pengujian untuk proyek yang tidak memiliki referensi NuGet adaptor pengujian. Kedua opsi dicentang secara default, jadi tidak ada perilaku default yang akan berubah dalam rilis ini.
  • Catatan: adaptor pengujian Non-.NET tidak terpengaruh dengan perubahan ini.

ASP.NET Dukungan Rahasia .NET Framework

Untuk ASP.NET, proyek .NET Framework yang menargetkan .NET Framework 4.7.1 atau yang lebih tinggi, Anda sekarang dapat membuka dan menyimpan rahasia yang tidak Anda inginkan dalam kode sumber Anda di usersecrets.xml dengan mengklik kanan proyek dan memilih "Rahasia Pengguna Terkelola".

Meningkatkan performa .NET Framework ASP.NET

Jika paket .NET Compiler yang dirujuk kedaluwarsa dalam proyek ASP.NET .NET Framework, Visual Studio akan meminta Anda untuk meningkatkan paket saat Anda membuka proyek untuk meningkatkan performa build Anda.

.NET Framework 4.7.2

Visual Studio 2017 versi 15.8 sekarang menawarkan alat pengembangan .NET Framework 4.7.2 ke semua platform yang didukung dengan runtime 4.7.2 disertakan. .NET Framework 4.7.2 menawarkan beberapa fitur dan peningkatan baru serta banyak keandalan, stabilitas, keamanan, dan perbaikan performa.

Anda dapat menemukan detail selengkapnya tentang .NET Framework 4.7.2 di artikel ini:

Beban Paket Penundaan

Visual Studio sekarang menunda pemuatan paket asinkron yang dikonfigurasi untuk dimuat otomatis hingga setelah IDE Visual Studio dimulai sepenuhnya dan solusi telah dimuat. Perubahan ini tidak memengaruhi paket yang dimuat otomatis secara sinkron. Pengguna dapat melihat Pusat Status Tugas di sudut kiri bawah bilah status untuk memantau kemajuan. Penulis ekstensi yang membuat asinkron harus menguji ekstensinya. Untuk informasi selengkapnya, lihat Meningkatkan respons skenario penting dengan memperbarui perilaku beban otomatis untuk ekstensi.


---

Ikon Catatan Rilis Pemberitahuan Penasihat Keamanan Visual Studio 2017 versi 15.8

Rilis Layanan Visual Studio 2017 versi 15.8.7 -- dirilis pada 10 Oktober 2018

Kerentanan Pengungkapan Informasi Inti CVE-2018-8292 .NET

Kerentanan bypass fitur keamanan ada di .NET Core ketika informasi autentikasi HTTP secara tidak sengaja diekspos dalam permintaan keluar yang menemukan pengalihan HTTP. Penyerang yang berhasil mengeksploitasi kerentanan ini dapat menggunakan informasi untuk lebih membahayakan aplikasi web. Pembaruan keamanan mengatasi kerentanan dengan mengoreksi cara aplikasi .NET Core menangani pengalihan HTTP.

Visual Studio 2017 versi 15.8.4 Rilis Layanan -- dirilis pada 11 September 2018

CVE-2018-8409 .NET Core Penolakan Kerentanan Layanan

Penolakan kerentanan layanan ada di .NET Core 2.1 ketika System.IO.Pipelines secara tidak benar menangani permintaan. Penyerang yang berhasil mengeksploitasi kerentanan ini dapat menyebabkan penolakan layanan terhadap aplikasi yang memanfaatkan System.IO.Pipelines. Kerentanan dapat dieksploitasi dari jarak jauh, tanpa autentikasi. Penyerang jarak jauh yang tidak diautentikasi dapat mengeksploitasi kerentanan ini dengan memberikan permintaan yang dibuat secara khusus ke aplikasi.

CVE-2018-8409 ASP.NET Penolakan Inti Kerentanan Layanan

Penolakan kerentanan layanan ada di ASP.NET Core 2.1 yang secara tidak benar menangani permintaan web. Penyerang yang berhasil mengeksploitasi kerentanan ini dapat menyebabkan penolakan layanan terhadap aplikasi web ASP.NET Core. Kerentanan dapat dieksploitasi dari jarak jauh, tanpa autentikasi. Penyerang jarak jauh yang tidak diautentikasi dapat mengeksploitasi kerentanan ini dengan memberikan permintaan web yang dibuat khusus ke aplikasi ASP.NET Core.

Visual Studio 2017 versi 15.8 -- dirilis pada 14 Agustus 2018

CVE-2018-0952 Diagnostic Hub Standard Collector Elevation of Privilege Vulnerability

Peningkatan kerentanan hak istimewa ada di layanan visual studio, yang dapat menyebabkan hak istimewa sistem oleh pengguna non-admin saat menulis file. Penyerang yang memanfaatkan ini dapat menulis file sebagai sistem sambil hanya memiliki akses tingkat pengguna. Pembaruan keamanan ini mengatasi masalah ini dengan meniru pengguna saat ini untuk memvalidasi akses ke lokasi file.

Visual Studio 2017 versi 15.8 Pratinjau 4 -- dirilis pada 10 Juli 2018

Kerentanan Eksekusi Kode Jarak Jauh CVE-2018-8172 Visual Studio

Kerentanan eksekusi kode jarak jauh yang dapat menyebabkan eksploitasi komputer pengguna dengan membuka proyek yang dibuat khusus, atau file sumber daya. Pembaruan keamanan mengatasi kerentanan dengan mengoreksi cara Visual Studio memeriksa markup sumber file.

Kerentanan Eksekusi Kode Jarak Jauh CVE-2018-8260 .NET Framework

Kerentanan eksekusi kode jarak jauh ada di perangkat lunak .NET yang dapat menyebabkan eksploitasi komputer pengguna dengan memungkinkan penyerang menjalankan kode arbitrer dalam konteks pengguna saat ini. Pembaruan keamanan mengatasi kerentanan dengan mengoreksi cara .NET memeriksa markup sumber file.

CVE-2018-8232 .NET Kerentanan Perakit Makro Microsoft

Merusak kerentanan yang terkait dengan Microsoft Macro Assembler yang memvalidasi kode secara tidak benar. Pembaruan keamanan mengatasi kerentanan dengan memastikan bahwa Microsoft Macro Assembler memvalidasi logika kode dengan benar.

CVE-2018-8171 ASP.NET Kerentanan Bypass Fitur Keamanan Inti

Kerentanan Bypass Fitur Keamanan Inti ASP.NET ada ketika jumlah upaya masuk yang salah tidak divalidasi yang dapat menyebabkan penyerang mencoba upaya autentikasi tak terbatas. Pembaruan membahas kerentanan dengan memvalidasi jumlah upaya masuk yang salah.

Visual Studio 2017 versi 15.8 Pratinjau 3 -- dirilis pada 26 Juni 2018

CVE-2018-11235 Penasihat Keamanan Microsoft untuk Kerentanan Keamanan Git

Kami memperbaiki kerentanan keamanan di Git yang diungkapkan oleh komunitas Git. Kerentanan dapat menyebabkan eksekusi kode arbitrer ketika pengguna mengkloning repositori berbahaya.

Visual Studio 2017 versi 15.8 Pratinjau 1 -- dirilis pada 08 Mei 2018

CVE-2018-0765 Microsoft Security Advisory untuk .NET Core Denial of Service Vulnerability

  • Microsoft merilis saran keamanan ini untuk memberikan informasi tentang kerentanan di .NET Core dan .NET native versi 2.0. Saran ini juga memberikan panduan tentang apa yang dapat dilakukan pengembang untuk memperbarui aplikasi mereka untuk menghapus kerentanan ini.
  • Microsoft mengetahui penolakan kerentanan layanan yang ada ketika .NET Framework dan .NET Core memproses dokumen XML secara tidak benar. Penyerang yang berhasil mengeksploitasi kerentanan ini dapat menyebabkan penolakan layanan terhadap aplikasi asli .NET Framework, .NET Core, atau .NET.
  • Pembaruan membahas kerentanan dengan mengoreksi cara aplikasi asli .NET Framework, .NET Core, dan .NET menangani pemrosesan dokumen XML.
  • Jika aplikasi Anda adalah aplikasi ASP.NET Core, pengembang juga disarankan untuk memperbarui ke ASP.NET Core 2.0.8.

Ikon Catatan RilisVisual Studio 2017 versi 15.8.1

dirilis pada 17 Agustus 2018

Masalah Teratas Diperbaiki di 15.8.1

Ini adalah masalah yang dibahas dalam 15.8.1:

  • Memperbaiki masalah di mana Visual Studio akan menutup secara tiba-tiba ketika jendela browser ditutup saat men-debug proyek Web.

Ikon Catatan RilisVisual Studio 2017 versi 15.8.2

dirilis pada 28 Agustus 2018

Masalah Teratas Diperbaiki di 15.8.2

Ini adalah masalah yang dilaporkan pelanggan yang ditangani di 15.8.2:


Ikon Catatan RilisVisual Studio 2017 versi 15.8.3

dirilis pada 6 September 2018

Masalah Teratas Diperbaiki di 15.8.3

Ini adalah masalah yang dilaporkan pelanggan yang ditangani di 15.8.3:


Ikon Catatan RilisVisual Studio 2017 versi 15.8.4

dirilis pada 11 September 2018

Masalah Teratas Diperbaiki di 15.8.4

Ini adalah masalah yang dilaporkan pelanggan yang diatasi dalam 15.8.4:

Pemberitahuan Penasihat Keamanan


Ikon Catatan RilisVisual Studio 2017 versi 15.8.5

dirilis pada 20 September 2018

Ringkasan Apa yang Baru dalam 15.8.5

  • Alat Visual Studio untuk Xamarin sekarang mendukung Xcode 10.

Masalah Teratas Diperbaiki di 15.8.5

Ini adalah masalah yang dilaporkan pelanggan yang ditangani di 15.8.5:

Detail Tentang Apa yang Baru di 15.8.5

Alat Visual Studio Tools untuk Xamarin

Visual Studio Tools for Xamarin sekarang mendukung Xcode 10 yang memungkinkan Anda membuat dan men-debug aplikasi untuk iOS 12, tvOS 12, dan watchOS 5. Lihat cara bersiap untuk iOS 12 dan pengenalan kami ke iOS 12 untuk detail selengkapnya tentang fitur baru yang tersedia.


Ikon Catatan RilisVisual Studio 2017 versi 15.8.6

dirilis pada 02 Oktober 2018

Ringkasan Apa yang Baru di 15.8.6

Masalah Teratas Diperbaiki di 15.8.6

Ini adalah masalah yang dilaporkan pelanggan yang ditangani di 15.8.6:

Detail Tentang Apa yang Baru di 15.8.6

Windows 10 SDK terbaru untuk pengembang Platform Windows Universal

Windows 10 SDK terbaru (build 17763) sekarang tersedia sebagai komponen opsional untuk beban kerja pengembangan Platform Windows Universal. Anda dapat menambahkan SDK ini ke beban kerja dengan memilih kotak centang Windows 10 SDK (10.0.17763.0).


Ikon Catatan RilisVisual Studio 2017 versi 15.8.7

dirilis pada 10 Oktober 2018

Yang Baru di 15.8.7

Azure DevOps

Visual Studio Team Services sekarang menjadi Azure DevOps! Anda akan melihat merek baru ini di Team Explorer dan dalam referensi di seluruh Visual Studio.

Pemberitahuan Penasihat Keamanan

Kerentanan Pengungkapan Informasi Inti CVE-2018-8292 .NET


Ikon Catatan RilisVisual Studio 2017 versi 15.8.8

dirilis pada 24 Oktober 2018

Masalah Teratas Diperbaiki di 15.8.8

Ini adalah masalah yang dilaporkan pelanggan yang ditangani di 15.8.8:


Ikon Catatan RilisVisual Studio 2017 versi 15.8.9

dirilis pada 2 November 2018

Masalah Teratas Diperbaiki di 15.8.9

Ini adalah masalah yang dilaporkan pelanggan yang ditangani di 15.8.9:


Masalah yang Diketahui

Lihat semua masalah yang diketahui dan solusi yang tersedia di Visual Studio 2017 versi 15.8.

Masalah Yang Diketahui Visual Studio 2017


Umpan Balik & 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 Laporkan Ikon Masalah 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.

Blog Alat Pengembang


Riwayat Catatan Rilis Visual Studio 2017

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


Bagian Atas Halaman