Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 />