NuGet Warning NU5127

Ez a csomag nem tartalmaz lib/ vagy ref/ mappát, ezért minden keretrendszer kompatibilisként lesz kezelve. Mivel a keretrendszer-specifikus fájlok a net45-höz készült build/ könyvtár alatt találhatók, a netstandard2.0 esetében fontolja meg a következő üres fájlok létrehozását a csomag kompatibilitásának megfelelő szűkítéséhez:
-lib/net45/.
-lib/netstandard2.0/.

Probléma

Olyan projektek, amelyek csak használattal és ref/ szerelvényekkel rendelkező PackageReference csomagokat használnak lib/ a csomagkompatibilitás meghatározásához. Ezért a fájlok nélküli ref/ csomagok lib/ minden projekttel kompatibilisnek minősülnek. Az MSBuild kellékeket vagy célokat tartalmazó csomagok azonban, amelyek egy vagy több cél keretrendszerre vonatkoznak, szándékot mutatnak, és csak azokkal a cél-keretrendszerekkel kompatibilisek.

Tegyük fel például, hogy egy csomag PackageA egyetlen fájlt tartalmaz. build/net8.0/PackageA.targets Ha erre a csomagra egy projektcélzás net48 hivatkozik (.NET-keretrendszer, 4.8-es verzió), a NuGet nem bocsát ki figyelmeztetéseket vagy hibákat, de nem választ ki semmilyen objektumot a csomagból. Ezért a csomag fogyasztója nem kap értesítést arról, hogy a csomag nem működik megfelelően a projekttel.

Megoldás

Ahogy a figyelmeztető üzenet is sugallja, hozzon létre egy üres fájlt _._ a felsorolt TFM-ekhez tartozó lib mappában. Ez lehetővé teszi a NuGet számára, hogy meghiúsuljon a projektek visszaállítása PackageReference , ha a projekt nem kompatibilis a csomaggal.

Ha a csomagnak kompatibilisnek kell lennie az összes cél keretrendszerrel, de csak bizonyos cél-keretrendszerek esetében lép érvénybe, hozzon létre egy fájltbuild/{PackageId}.props, amelynek a tartalma .<Project />