Masalah lingkungan biasanya mengikuti pola yang sama, sehingga gejala yang familiar dapat dipetakan langsung ke solusinya. Bab ini mengumpulkan masalah yang paling sering dialami pemula, menjelaskan penyebabnya, dan memberi langkah perbaikan yang teruji. Prinsip utamanya satu: baca pesan galat dari baris teratas sebelum mencoba perbaikan apa pun.
Tabel Diagnosis Cepat #
| Gejala | Penyebab Umum | Solusi Utama |
|---|---|---|
dotnet: command not found | Terminal memakai PATH lama sebelum instalasi | Tutup dan buka ulang terminal |
| Build memakai versi SDK yang tidak diharapkan | Beberapa SDK terpasang bersamaan | Cek dotnet --list-sdks, kunci versi dengan global.json |
Build gagal pada TargetFramework | SDK tidak mendukung target project | Perbarui SDK atau turunkan target |
| Restore NuGet gagal | Firewall atau proxy memblokir nuget.org | Konfigurasikan proxy atau pakai mirror internal |
| IntelliSense dan debugger tidak muncul di editor | Extension C# belum terpasang atau belum dimuat | Pasang C# Dev Kit, lalu buka ulang editor |
Masalah 1: Perintah dotnet Tidak Dikenali #
Gejala di terminal:
dotnet: command not foundPenyebab: shell mencari perintah di daftar folder pada variabel PATH. Proses instalasi menambahkan folder .NET ke PATH, tetapi terminal yang sudah terbuka tidak membaca ulang pembaruan tersebut.
Solusi:
- Tutup seluruh jendela terminal, lalu buka terminal baru.
- Jalankan
dotnet --versionuntuk memastikan perintah dikenali. - Bila masih gagal, periksa lokasi instalasi:
~/.dotnetpada Linux/macOS (hasil script dotnet-install.sh) atauC:\Program Files\dotnetpada Windows. - Tambahkan folder tersebut ke PATH secara manual, lalu buka ulang terminal.
Masalah 2: Beberapa Versi SDK Terpasang #
Instalasi SDK tidak menimpa versi sebelumnya, sehingga beberapa SDK dapat terpasang berdampingan. Contoh tampilan dotnet --list-sdks ketika dua SDK terpasang:
8.0.412 [~/.dotnet/sdk]
9.0.319 [~/.dotnet/sdk]Kondisi tersebut normal dan tidak merusak apa pun. CLI memilihkan SDK yang sesuai dengan <TargetFramework> di file .csproj. Bila kita ingin mengunci versi SDK untuk satu project, buat file global.json di folder root project:
{
"sdk": {
"version": "9.0.319",
"rollForward": "latestFeature"
}
}Dengan konfigurasi tersebut, CLI memakai SDK 9.0.319 atau versi patch lebih baru pada feature band yang sama, dan mengabaikan SDK 8.x.
Masalah 3: TargetFramework Tidak Didukung SDK #
File .csproj menuntut target framework tertentu. Bila SDK yang terpasang lebih lama dari target — misalnya project menyebut net9.0 tetapi SDK 8.x yang aktif — build gagal dengan galat keluarga NETSDK (umumnya NETSDK1045 yang menyatakan SDK saat ini tidak mendukung target tersebut).
Solusi:
- Periksa nilai
<TargetFramework>di file.csproj, misalnyanet9.0. - Jalankan
dotnet --list-sdksuntuk melihat SDK yang terpasang. - Bila SDK lebih lama dari target: perbarui SDK ke versi yang sesuai.
- Bila pembaruan tidak memungkinkan: turunkan
<TargetFramework>ke versi yang didukung SDK terpasang, misalnyanet8.0.
Perhatikan bahwa menurunkan target dapat memengaruhi fitur bahasa C# yang tersedia, karena setiap versi .NET membawa versi compiler dan API pustaka yang berbeda.
Masalah 4: Restore NuGet Terblokir Firewall atau Proxy #
Saat restore berjalan, NuGet mengunduh package dari nuget.org. Firewall komputer atau proxy jaringan kantor dapat memblokir koneksi tersebut, sehingga perintah dotnet new maupun dotnet build berakhir dengan galat restore.
Solusi:
- Pastikan browser pada komputer yang sama dapat membuka
nuget.org. - Bila jaringan memakai proxy, set variabel lingkungan
HTTP_PROXYdanHTTPS_PROXYsebelum menjalankan perintah dotnet. - Bila organisasi menyediakan mirror internal NuGet, daftarkan sumber tersebut di file
nuget.configpada folder project. - Sebagai langkah terakhir, minta file
.nupkgdari anggota tim lain dan pasang dari cache lokal.
Langkah Diagnosis Sistematis #
Ketika gejala tidak ada di daftar di atas, periksa lingkungan secara berurutan:
- Baca pesan galat dari baris teratas. Pesan build .NET menampilkan target yang gagal dan alasan utamanya di bagian awal.
- Jalankan
dotnet --info. Perintah ini menampilkan versi SDK, versi runtime, dan lokasi instalasi dalam satu output — ringkasan lingkungan yang paling lengkap. - Jalankan
dotnet --list-sdks. Bandingkan hasilnya dengan<TargetFramework>di file.csproj. - Hapus folder
bin/danobj/, lalu build ulang. File cache yang usang kadang membuat build berperilaku aneh; build dari nol menghapus faktor tersebut. - Uji dari terminal bersih. Editor yang memuat versi SDK berbeda dapat menyembunyikan galat yang justru terlihat di terminal.