Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Hot Reload sebelumnya dikenal sebagai Edit and Continue dalam dokumentasi Visual Studio dan beberapa teks UI versi lama.
Mulai dari Visual Studio 2022, fitur Hot Reload dalam Visual Studio berfungsi untuk aplikasi .NET terkelola dan C++ asli. Terlepas dari jenis aplikasi yang sedang Anda kerjakan, niat dari Hot Reload adalah untuk mengurangi pengulangan proses membuka aplikasi di antara pengeditan, meningkatkan produktivitas Anda dengan mengurangi waktu yang Anda habiskan untuk menunggu aplikasi membangun kembali, memulai ulang, dan kembali ke lokasi sebelumnya dalam aplikasi.
Kami meningkatkan produktivitas dengan memungkinkan Anda mengedit file kode aplikasi dan segera menerapkan perubahan kode ke aplikasi yang sedang berjalan, juga dikenal sebagai Hot Reload. Setelah perubahan diterapkan, jalankan kembali kode Anda lagi dengan mengambil tindakan di aplikasi itu sendiri (atau melalui semacam timer, dll.) dan melihat perubahan segera; tidak diperlukan jeda aplikasi melalui titik henti!
Memperbarui kode yang sedang berjalan dengan Hot Reload
Buka proyek berdasarkan jenis aplikasi yang didukung. Lihat .NET dan C++ aplikasi yang didukung.
Mulai aplikasi dengan debugger yang dilampirkan menggunakan F5 atau, jika didukung, Ctrl+F5.
Buka file kode dan ubah kode.
Terapkan perubahan kode menggunakan Hot Reload
, atau tekan ALT+F10.
Untuk melihat perubahan di antarmuka pengguna, kode perlu dijalankan kembali. Misalnya, kode back-end untuk tombol harus dijalankan kembali, atau kode yang dipicu secara berkala melalui timer. Sebagai contoh lain, ASP.NET Core mendukung refresh browser otomatis karena fungsionalitas MetadataUpdateHandler.
Dukungan untuk aplikasi .NET
- Saat menggunakan Visual Studio 2022 dan memulai aplikasi Anda dengan debugger, pengalaman dasar Hot Reload berfungsi dengan sebagian besar jenis aplikasi .NET dan versi kerangka kerja. Dukungan ini mencakup .NET Framework, .NET Core, dan .NET 5+ (untuk C# dan Visual Basic sebagaimana berlaku). Harapan dalam skenario ini adalah bahwa jika Anda menggunakan debugger, asumsikan Hot Reload tersedia untuk Anda dan cobalah!
- Saat menggunakan Visual Studio 2022 tetapi tidak menggunakan debugger (misalnya, menggunakan CTRL-F5 untuk memulai aplikasi), Hot Reload tersedia saat menargetkan sebagian besar jenis aplikasi .NET 6. Dalam skenario ini, aplikasi yang tidak menargetkan .NET 6+ (artinya, mereka menargetkan .NET 5 atau di bawahnya) tidak mendukung skenario "tidak ada debugger" dan harus menggunakan debugger untuk mendapatkan dukungan Hot Reload.
- Saat menggunakan Visual Studio 2022 dengan aplikasi .NET 6+, sebagian besar skenario didukung. Dukungan ini tidak terbatas pada fitur "tanpa debugger" baru yang disebutkan sebelumnya. Ini juga mencakup kemampuan baru lainnya, seperti dukungan untuk proyek Blazor yang menggunakan pemuat ulang cepat dan, lebih umum, mengedit file Razor di aplikasi ASP.NET Core apa pun, dan pemuat ulang cepat CSS. Menggunakan Visual Studio 2022 dan aplikasi yang menargetkan .NET 6 bersama-sama memberi Anda pengalaman Hot Reload yang paling kuat.
Tabel berikut menunjukkan versi .NET minimum yang diperlukan untuk mendukung .NET Hot Reload dengan debugger terlampir (F5) dan tanpa debugger terlampir (Ctrl+F5), berdasarkan jenis proyek. Visual Studio 2022 versi 17.8 atau yang lebih baru diperlukan.
| Jenis aplikasi | F5 | Ctrl+F5 |
MetadataUpdateHandler dukungan |
|---|---|---|---|
| Konsol | ✅ | .NET 6 | .NET 6 |
| Berjalan di Linux/macOS (Docker dan WSL) |
.NET 8 | .NET 6 | .NET 8 |
| Berjalan pada Arm64 | .NET 7 | .NET 7 | .NET 7 |
| WPF | ✅ | .NET 6 | .NET 6 |
| WinForms | ✅ | .NET 6 | .NET 6 |
| ASP.NET | ✅ | .NET 6 | .NET 6 |
| Blazor Server | .NET 6 | .NET 6 | .NET 6 |
| Blazor WebAssembly | .NET 6 | .NET 6 | .NET 6 |
| MAUI (WinUI/Android/iOS) |
.NET 6 | -- | -- |
Jenis pengeditan yang dapat Anda buat dengan Hot Reload ditentukan oleh versi runtime dan kompilator, bukan dengan metode yang Anda gunakan untuk memulai aplikasi (F5 atau Ctrl+F5).
Di bagian berikut, kami memberikan detail tambahan.
Dukungan untuk aplikasi .NET Framework
Saat menggunakan Visual Studio 2022 dan memulai aplikasi Anda dengan debugger, pengalaman Hot Reload dasar berfungsi dengan sebagian besar jenis aplikasi .NET dan versi kerangka kerja. Dukungan ini mencakup .NET Framework, .NET Core, dan .NET 5+ (untuk C# dan Visual Basic sebagaimana berlaku). Harapan dalam skenario ini adalah bahwa jika Anda menggunakan debugger, asumsikan Hot Reload tersedia untuk Anda dan cobalah!
Dukungan untuk aplikasi C++
Saat menggunakan Visual Studio 2022 dan memulai aplikasi dengan debugger, Anda dapat hot reload aplikasi C++ asli saat berjalan di bawah debugger (F5) menggunakan tombol Hot Reload. Hot Reload juga didukung untuk aplikasi yang dibangun menggunakan proyek CMake dan OpenFolder.
Agar proyek Anda mendukung Hot Reload, Anda memerlukan set opsi berikut:
- Project > Properties > C/C++ > General >Format InformasiDebug harus diatur ke "Database Program untuk Edit dan Lanjutkan
/ZI" - Project > Properties > Linker > General >Aktifkan Pautan Inkremental harus diatur ke "Ya
/INCREMENTAL"
Untuk perubahan kode yang didukung, lihat Perubahan Kode C++ yang Didukung.
Visual Studio 2022 dengan aplikasi .NET atau .NET Framework, saat menggunakan debugger
Saat menggunakan Visual Studio 2022 dan memulai aplikasi dengan debugger, Hot Reload berfungsi dengan sebagian besar kerangka kerja aplikasi.
Di mana saja Anda memiliki .NET dan Anda menggunakan debugger terkelola Visual Studio, Anda harus mendapatkan dukungan Hot Reload dasar. Fakta ini berarti bahwa bahkan proyek seperti Azure Functions bekerja dengan baik dalam skenario ini.
Nota
Secara default, beberapa proyek menggunakan debugging mode campuran, yang tidak mendukung Hot Reload. Anda dapat mengubah pengaturan ini di pengaturan proyek, dengan mengatur Project > Properties > Debug > Buka UI profil peluncuran debug > Nonaktifkan penelusuran kesalahan kode asli ke false.
Visual Studio 2022 dengan aplikasi .NET, tetapi tidak menggunakan debugger
Hot Reload tersedia tanpa debugger saat menargetkan sebagian besar jenis aplikasi .NET 6+.
Fitur ini eksklusif untuk .NET 6+. Aplikasi yang tidak menargetkan .NET 6+ (yaitu, mereka menargetkan .NET 5 atau di bawahnya) tidak mendukung skenario "tidak ada debugger" dan harus menggunakan debugger untuk mendapatkan akses ke fungsionalitas Hot Reload.
Selain itu, tidak semua jenis proyek saat ini mendukung skenario "tanpa debugger", lihat Dukungan untuk aplikasi .NET.
Visual Studio 2022 dengan aplikasi .NET 6+
Jika Anda menggunakan Visual Studio 2022 dan mengerjakan aplikasi yang menargetkan .NET 6+, Anda mendapatkan manfaat dari pengalaman Hot Reload yang paling canggih dan terpercaya.
Didukung dalam skenario ini:
- Aplikasi Blazor (Server dan WebAssembly)
- Mengedit file Razor di Blazor dan situs web ASP.NET Core biasa
- Hot Reload CSS
- Hot Reload XAML
- Dukungan Hot Reload tersedia saat menjalankan aplikasi tanpa debugger (seperti dijelaskan lebih rinci sebelumnya).
Jika Anda menargetkan .NET 6+, Anda akan terus mendapatkan peningkatan dalam pembaruan Visual Studio 2022 dan jalur fitur .NET serta rilis utama.
Skenario ASP.NET Core yang didukung
Pengalaman Hot Reload dasar didukung untuk banyak skenario ASP.NET. Fitur yang paling banyak tersedia adalah kemampuan untuk mengubah kode di belakang dan file kelas .NET lainnya untuk sebagian besar jenis aplikasi web. Fitur ini berfungsi saat menggunakan debugger Visual Studio dan ada di mana saja Hot Reload sebelumnya tersedia. Untuk panduan yang lebih spesifik, lihat dukungan .NET Hot Reload untuk ASP.NET Core.
Untuk pengembang ASP.NET Core yang menargetkan .NET 6+, ada kemampuan tambahan yang tidak tersedia untuk versi .NET yang lebih rendah. Kemampuan ini meliputi:
- CSHTML: Mengedit file Razor CSHTML mendukung banyak jenis pengeditan.
- Browser Refresh: Mengedit file Razor secara otomatis menyegarkan perubahan di browser web Anda saat debugging. Fitur ini sebelumnya hanya tersedia saat memulai aplikasi tanpa debugger.
- CSS Hot Reload: Anda dapat mengubah file CSS saat aplikasi berjalan, dan perubahan segera diterapkan ke aplikasi yang sedang berjalan saat Anda mengetik.
- No Debugger: Anda mendapatkan dukungan Hot Reload saat menggunakan Visual Studio untuk memulai aplikasi web Anda tanpa debugger (CTRL-F5).
Perubahan .NET yang didukung
Pengalaman .NET Hot Reload didukung oleh debugger dan kompilator C# (Roslyn). Roslyn mendukung pengeditan dan Perubahan kode yang didukung (C# dan VB) mencantumkan jenis pengeditan yang saat ini didukung dan potensi penyempurnaan di masa mendatang.
Perubahan .NET Framework yang didukung
Pengalaman .NET Hot Reload didukung oleh debugger dan pengkompilasi C#. Perubahan kode yang didukung (C# dan VB) mencantumkan jenis pengeditan yang saat ini didukung dan potensi penyempurnaan di masa mendatang.
Proyek .NET dan .NET Framework yang tidak didukung
Hot Reload tidak tersedia dalam beberapa konfigurasi proyek:
- Jika Anda menggunakan Visual Studio tanpa debugger, Hot Reload hanya berfungsi untuk aplikasi .NET yang menargetkan .NET 6+.
- Jika Anda menggunakan debugger Visual Studio untuk menjalankan aplikasi, tetapi Anda telah menonaktifkan
Enable Hot Reload and Edit and Continue when debuggingdi pengaturan, Hot Reload tidak didukung. - Konfigurasi rilis atau build kustom tidak didukung. Proyek Anda harus menggunakan konfigurasi build
Debug. - Jika Anda menargetkan proyek F# atau .NET Native.
- Beberapa startup atau pengoptimalan kompilasi tidak didukung di .NET Hot Reload. Misalnya, jika profil debug proyek Anda dikonfigurasi dengan cara berikut, .NET Hot Reload tidak didukung:
-
Pemangkasan diaktifkan untuk proyek Anda. Misalnya, tidak didukung apabila
PublishTrimmeddisetel ke True di dalam file proyek Anda untuk profil debug. -
ReadyToRun diaktifkan untuk proyek Anda. Misalnya, tidak didukung apabila
PublishReadyToRundisetel ke True di dalam file proyek Anda untuk profil debug.
-
Pemangkasan diaktifkan untuk proyek Anda. Misalnya, tidak didukung apabila
Lihat skenario yang tidak didukung untuk detail selengkapnya.
Hot Reload Tidak Didukung untuk F#
Hot Reload, atau Edit dan Lanjutkan, tidak didukung saat Anda men-debug kode F#. Pengeditan kode F# dimungkinkan dalam sesi debugging tetapi harus dihindari. Perubahan kode tidak diterapkan selama sesi debugging. Oleh karena itu, setiap pengeditan yang dilakukan pada kode F# saat Anda melakukan debug akan menghasilkan kode sumber yang tidak cocok dengan kode yang di-debug.
Mengonfigurasi Hot Reload
Untuk mengaktifkan, menonaktifkan, atau mengonfigurasi Hot Reload, lihat Konfigurasi Edit dan Lanjutkan.
Pesan peringatan
Jika Anda melihat kotak dialog berikut, Hot Reload tidak dapat menerapkan pengeditan saat ini tanpa memulai ulang. Anda dapat memilih untuk membangun kembali aplikasi dan menerapkan perubahan (mulai ulang) atau untuk melanjutkan pengeditan. Jika Anda membangun kembali, semua status aplikasi akan hilang. Jika Anda terus mengedit, ada kemungkinan perubahan atau koreksi tambahan dapat menyebabkan Hot Reload berfungsi lagi.
Jika Anda memilih opsi Always dibangun kembali saat perubahan tidak dapat diterapkan dalam kotak dialog, Anda tidak akan melihat kotak dialog lagi di sesi Visual Studio saat ini, dan Visual Studio akan secara otomatis membangun kembali dan memuat ulang alih-alih memperlihatkan kotak dialog.
Pemecahan masalah
Jika Hot Reload tidak berfungsi seperti yang diharapkan, periksa hal berikut:
- Verifikasi bahwa Anda menjalankan aplikasi dan skenario yang didukung. Beberapa jenis proyek, debugging mode campuran, kode yang telah dioptimalkan, dan skenario Lampirkan ke Proses tidak mendukung Hot Reload. Untuk informasi selengkapnya, lihat Skenario yang tidak didukung.
- Pastikan aplikasi menggunakan konfigurasi
Debugdan Hot Reload diaktifkan di Tools>Options>Debugging>.NET/C++ Hot Reload. - Atur Logging Verbosity ke Detailed atau Diagnostic untuk mendapatkan informasi selengkapnya dalam output Hot Reload.
- Buka jendela Output, dan di Tampilkan output dari, pilih Hot Reload untuk meninjau pesan diagnostik.
- Jika suatu baris muncul sebagai baca-saja saat melakukan debug, baris tersebut mungkin merupakan pernyataan aktif pada tumpukan panggilan, atau pengeditannya mungkin memerlukan permulaan ulang.
Untuk daftar diagnostik umum, lihat pesan kesalahan Hot Reload dan Edit dan Lanjutkan. Jika masalah berlanjut dan output tidak menunjukkan penyebab yang jelas, gunakan Laporkan Masalah untuk mengirim umpan balik ke tim Visual Studio.
Jika Anda menggunakan kompresi respons di .NET Core, lihat informasi tentang kompresi respons.