NuGet Peringatan NU5127

Paket ini tidak berisi folder lib/atau ref/, dan oleh karena itu akan diperlakukan kompatibel untuk semua kerangka kerja. Karena file khusus kerangka kerja ditemukan di bawah direktori build/ untuk net45, netstandard2.0, pertimbangkan untuk membuat file kosong berikut untuk mempersempit kompatibilitas paket dengan benar:
-lib/net45/.
-lib/netstandard2.0/.

Masalah

Proyek yang menggunakan paket hanya dengan PackageReference penggunaan lib/ dan ref/ rakitan untuk menentukan kompatibilitas paket. Oleh karena itu, paket tanpa file atau ref/ apa pun lib/ akan dianggap kompatibel dengan semua proyek. Namun, paket yang berisi alat peraga atau target MSBuild yang khusus untuk satu atau beberapa kerangka kerja target menunjukkan niat hanya kompatibel dengan kerangka kerja target tersebut.

Misalnya, pertimbangkan paket PackageA berisi satu file, build/net8.0/PackageA.targets. Jika paket ini dirujuk oleh penargetan net48 proyek (.NET Framework, Versi 4.8), NuGet tidak akan mengeluarkan peringatan atau kesalahan apa pun, tetapi juga tidak akan memilih aset apa pun dari paket. Oleh karena itu, konsumen paket tidak akan diberi tahu bahwa paket tidak berfungsi dengan benar dengan proyek mereka.

Solusi

Seperti yang disarankan oleh pesan peringatan, buat file kosong bernama _._ di folder lib untuk TFM yang tercantum. Ini akan memungkinkan NuGet untuk gagal memulihkan proyek PackageReference ketika proyek tidak kompatibel dengan paket.

Jika paket Anda dimaksudkan untuk kompatibel dengan semua kerangka kerja target, tetapi hanya berlaku untuk kerangka kerja target tertentu, buat file build/{PackageId}.props yang kontennya adalah <Project />.