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.
Anda dapat dengan mudah menjalankan dan men-debug aplikasi .NET Core dan .NET 5+ Anda di Linux tanpa meninggalkan Visual Studio menggunakan Subsistem Windows untuk Linux (WSL). Jika Anda adalah pengembang lintas platform, Anda dapat menggunakan metode ini sebagai cara sederhana untuk menguji lebih banyak lingkungan target Anda.
Bagi pengguna Windows .NET yang menargetkan Linux, WSL berada di posisi ideal antara realisme produksi dan produktivitas. Di Visual Studio, Anda sudah dapat men-debug di lingkungan Linux jarak jauh menggunakan debugger jarak jauh, atau dengan kontainer menggunakan Container Tools. Ketika realisme produksi menjadi perhatian utama Anda, Anda harus menggunakan salah satu opsi tersebut. Ketika perulangan dalam yang mudah dan cepat lebih penting, WSL adalah pilihan yang bagus.
Anda tidak perlu memilih hanya satu metode! Anda dapat memiliki profil peluncuran untuk Docker dan WSL dalam proyek yang sama dan memilih mana saja yang sesuai untuk eksekusi tertentu. Dan setelah aplikasi disebarkan, Anda selalu dapat menggunakan debugger jarak jauh untuk menghubungkannya ke aplikasi jika ada masalah. Untuk men-debug kontainer Linux Docker yang berjalan di WSL, lihat Lampirkan ke proses yang berjalan pada kontainer Docker.
Nota
Mulai Visual Studio 2019 versi 16.11, target debug WSL 2 diganti namanya menjadi WSL.
Prasyarat
Visual Studio 2019 v16.9 atau versi yang lebih baru dengan .NET Debugging dengan komponen opsional WSL.
Untuk memeriksa komponen WSL, pilih Alat >Ambil Alat dan Fitur. Di Penginstal Visual Studio, pastikan komponen diinstal dengan memilih tab komponen individual, dan mengetik WSL sebagai istilah pencarian.
Di beberapa versi Visual Studio, komponen opsional disertakan secara default dengan beberapa beban kerja .NET.
Pasang WSL.
Pasang distribusi pilihan Anda.
Mulai debugging dengan WSL
Setelah menginstal komponen yang diperlukan, buka aplikasi web ASP.NET Core atau aplikasi konsol .NET Core di Visual Studio, Anda akan melihat Profil Peluncuran baru bernama WSL:
Pilih profil ini untuk menambahkannya ke launchSettings.jsonAnda.
Beberapa atribut kunci dalam file ditampilkan dalam contoh berikut.
Nota
Mulai dari Visual Studio 2022 Pratinjau 3, nama perintah di Profil Peluncuran berubah dari WSL2 menjadi WSL.
"WSL": { "commandName": "WSL", "launchBrowser": true, "launchUrl": "https://localhost:5001", "environmentVariables": { "ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000", "ASPNETCORE_ENVIRONMENT": "Development" }, "distributionName": "" }Setelah Anda memilih profil baru, ekstensi memeriksa bahwa distribusi WSL Anda dikonfigurasi untuk menjalankan aplikasi .NET, dan membantu Anda menginstal dependensi yang hilang. Setelah menginstal dependensi ini, Anda siap untuk men-debug di WSL.
Mulai debugging seperti biasa, dan aplikasi Anda akan berjalan di distribusi WSL default Anda.
Cara mudah untuk memverifikasi bahwa Anda menjalankan di Linux adalah dengan memeriksa nilai
Environment.OSVersion.
Nota
Hanya Ubuntu dan Debian yang telah diuji dan didukung. Distribusi lain yang didukung oleh .NET seharusnya berfungsi tetapi memerlukan penginstalan manual .NET Runtime dan Curl.
Pilih distribusi tertentu
Secara default, profil peluncuran WSL 2 menggunakan distribusi default seperti yang diatur dalam wsl.exe. Jika Anda ingin profil peluncuran menargetkan distribusi tertentu, terlepas dari default tersebut, Anda dapat mengubah profil peluncuran Anda. Misalnya, jika Anda men-debug aplikasi web dan ingin mengujinya di Ubuntu 20.04, profil peluncuran Anda akan terlihat seperti:
"WSL": {
"commandName": "WSL",
"launchBrowser": true,
"launchUrl": "https://localhost:5001",
"environmentVariables": {
"ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000",
"ASPNETCORE_ENVIRONMENT": "Development"
},
"distributionName": "Ubuntu-20.04"
}
Menargetkan berbagai distribusi
Selangkah lagi, jika Anda mengerjakan aplikasi yang perlu dijalankan dalam beberapa distribusi dan Anda ingin cara cepat untuk menguji masing-masing aplikasi, Anda dapat memiliki beberapa profil peluncuran. Misalnya, jika Anda perlu menguji aplikasi konsol di Debian, Ubuntu 18.04, dan Ubuntu 20.04, Anda dapat menggunakan profil peluncuran berikut:
"WSL : Debian": {
"commandName": "WSL",
"distributionName": "Debian"
},
"WSL : Ubuntu 18.04": {
"commandName": "WSL",
"distributionName": "Ubuntu-18.04"
},
"WSL : Ubuntu 20.04": {
"commandName": "WSL",
"distributionName": "Ubuntu-20.04"
}
Dengan profil peluncuran ini, Anda dapat dengan mudah beralih bolak-balik antara distribusi target Anda, semua tanpa meninggalkan kenyamanan Visual Studio.
Menyambungkan ke proses WSL yang sedang berjalan
Selain menelusuri kesalahan dari startup aplikasi menggunakan F5, Anda dapat mendebug dengan mengaitkan ke proses WSL yang sedang berjalan menggunakan fitur kaitkan ke proses.
Dengan aplikasi berjalan, pilih Debug>Lampirkan ke Proses.
Untuk jenis Koneksi , pilih Subsistem Windows untuk Linux (WSL), lalu pilih distribusi Linux untuk target Koneksi .
Pilih Lampirkan.
Pengaturan WSL di profil peluncuran
Tabel berikut ini memperlihatkan pengaturan yang didukung di profil peluncuran.
| Nama | Bawaan | Maksud | Mendukung Token? |
|---|---|---|---|
| executablePath | dotnet | Executable yang akan dijalankan | Ya |
| commandLineArgs | Nilai properti MSBuild TargetPath yang dipetakan ke lingkungan WSL | Argumen baris perintah diteruskan ke executablePath | Ya |
| workingDirectory | Untuk aplikasi konsol: {OutDir} Untuk aplikasi web: {ProjectDir} |
Direktori kerja di mana memulai debugging | Ya |
| variabelLingkungan | Pasangan kunci-nilai variabel lingkungan yang akan diatur untuk proses yang sedang di-debug. | Ya | |
| setupScriptPath | Skrip yang akan dijalankan sebelum debugging. Berguna untuk menjalankan skrip seperti ~/.bash_profile. | Ya | |
| distributionName | Nama distribusi WSL yang akan digunakan. | Tidak | |
| bukaPeramban | palsu | Apakah meluncurkan browser atau tidak | Tidak |
| launchUrl | URL yang akan diluncurkan jika launchBrowser benar | Tidak |
Token yang didukung:
{ProjectDir} - Jalur ke direktori proyek
{OutDir} - Nilai properti MSBuild OutDir
Nota
Semua jalur untuk WSL, bukan Windows.
Melewatkan argumen baris perintah
Gunakan pengaturan commandLineArgs untuk meneruskan argumen baris perintah ke WSL di profil startup.
Dalam contoh berikut, Anda meneruskan dua argumen ke proyek DLL bernama ConsoleApp.
"WSL": {
"commandName": "WSL",
"commandLineArgs": "\"{OutDir}/ConsoleApp.dll\" arg1 arg2"
}
Aplikasi konsol
Untuk aplikasi konsol yang berjalan di WSL, aliran input standar (stdin) dialihkan dan tidak ada cara untuk memberikan input. Saat men-debug aplikasi konsol yang memerlukan input, mulai aplikasi langsung dari WSL menggunakan dotnet run dan tentukan jalur ke DLL di Windows. Ini menyediakan akses ke stdin karena aplikasi berjalan di konsol Linux. Untuk men-debug, gunakan instruksi yang dijelaskan di bagian Lampirkan ke proses WSL yang sedang berjalan.
Pengujian unit debug jarak jauh
Untuk men-debug pengujian unit dari jarak jauh di WSL, Anda harus menentukan lingkungan pengujian di testEnvironments.json. Untuk informasi selengkapnya, lihat Koneksi WSL 2 lokal.