Kode C# dalam templat tidak didukung oleh versi sebelumnya
Mulai dari .NET 6, templat proyek yang dikirim dengan .NET SDK menggunakan fitur bahasa C# terbaru. Fitur bahasa berikut digunakan dalam kode yang dihasilkan templat atau diaktifkan secara default dalam proyek:
- Pernyataan tingkat tinggi
- Global menggunakan direktif
- Namespace cakupan file
- Ekspresi baru yang dititik target
- Jenis referensi yang dapat diubah ke null
- Nilai pengembalian Asinkron Utama
Beberapa fitur bahasa C# terbaru tidak didukung oleh kerangka kerja target sebelumnya, sehingga Anda mungkin mengalami masalah dalam skenario berikut:
- Saat Anda menggunakan templat .NET 6 lalu mengubah kerangka kerja target ke versi sebelumnya.
- Saat Anda menggunakan templat .NET 6 lalu multi-target dengan menambahkan versi kerangka kerja target sebelumnya.
Versi yang diperkenalkan
SDK .NET 6.0.100
Perilaku yang lama
Di versi .NET sebelumnya, Anda dapat mengubah kerangka kerja target ke versi sebelumnya atau menambahkan versi tambahan tanpa harus mengubah kode C# yang dibuat oleh templat proyek.
Perilaku yang baru
Mulai dari .NET 6, saat Mengubah atau menambahkan kerangka kerja target, Anda mungkin perlu mengubah kode C# yang dihasilkan oleh templat untuk menghindari penggunaan fitur bahasa yang tidak didukung. Proyek tidak akan dibangun tanpa perubahan ini. Kesalahan dan peringatan kompilator biasanya memandu Anda tentang cara mengubah kode yang dihasilkan agar kompatibel dengan kerangka kerja target baru.
Mengubah kategori
Perubahan ini memengaruhi kompatibilitas sumber.
Alasan untuk berubah
Kami ingin templat proyek disinkronkan dengan fitur bahasa terbaru. Skenario penggunaan utama penargetan kerangka kerja terbaru menggunakan fitur bahasa C# terbaru.
Tindakan yang direkomendasikan
Jika Anda mengalami kesalahan dan peringatan waktu kompilasi saat Anda melakukan penargetan ulang ke versi kerangka kerja sebelumnya, gunakan informasi tersebut untuk memandu Anda mengubah kode yang dihasilkan agar kompatibel dengan kerangka kerja target yang Anda pilih.
Untuk menghindari kesalahan waktu kompilasi saat menargetkan kerangka kerja yang lebih lama, ikuti saran berikut:
- Hindari mengubah kerangka kerja target ke versi sebelumnya. Sebagai gantinya, pilih kerangka kerja target yang Anda inginkan selama pembuatan proyek di Visual Studio atau di baris perintah dengan menggunakan
dotnet new <templateName> --framework <targetFramework>
. - Saat membuat proyek multi-target, pilih versi kerangka kerja target terendah saat Anda membuat proyek. Tambahkan kerangka kerja target tambahan setelah proyek dibuat.
API yang Terpengaruh
T/A