Upozornění NuGet NU5127

Tento balíček neobsahuje složku lib/nebo ref/, a proto bude považován za kompatibilní pro všechny architektury. Vzhledem k tomu, že byly v sestavení nebo adresáři pro net45 nalezeny konkrétní soubory rozhraní net45, netstandard2.0, zvažte vytvoření následujících prázdných souborů, aby se správně zúžila kompatibilita balíčku:
-lib/net45/.
-lib/netstandard2.0/.

Problém

Projekty používající balíčky pouze s PackageReference použitím lib/ a ref/ sestaveními k určení kompatibility balíčků Proto bude balíček bez jakýchkoli souborů lib/ref/ považován za kompatibilní se všemi projekty. Balíčky obsahující props nebo cíle NÁSTROJE MSBuild, které jsou specifické pro jednu nebo více cílových architektur, ale zobrazují záměr pouze v kompatibilitě s těmito cílovými architekturami.

Představte si například, že balíček PackageA obsahuje jeden soubor , build/net8.0/PackageA.targets. Pokud na tento balíček odkazuje cílení net48 projektu (.NET Framework verze 4.8), NuGet nevygeneruje žádná upozornění ani chyby, ale také nevybere žádné prostředky z balíčku. Příjemce balíčku proto nebude upozorněn, že balíček s projektem správně nefunguje.

Řešení

Jak naznačuje zpráva upozornění, vytvořte prázdný soubor pojmenovaný _._ ve složce lib pro uvedené TFM. To umožní NuGetu selhat obnovení projektů PackageReference v případě, že je projekt nekompatibilní s balíčkem.

Pokud má být balíček kompatibilní se všemi cílovými architekturami, ale projeví se pouze pro určité cílové architektury, vytvořte soubor build/{PackageId}.props , jehož obsah je <Project />.