Delen via


NuGet-waarschuwing NU5127

Dit pakket bevat geen lib/of ref/map en wordt daarom behandeld als compatibel voor alle frameworks. Aangezien frameworkspecifieke bestanden zijn gevonden onder de build/map voor net45, netstandard2.0, kunt u overwegen de volgende lege bestanden te maken om de compatibiliteit van het pakket correct te beperken:
-lib/net45/.
-lib/netstandard2.0/.

Probleem

Projecten die pakketten gebruiken met PackageReference alleen gebruik lib/ en ref/ assembly's om de compatibiliteit van pakketten te bepalen. Daarom wordt een pakket zonder bestanden lib/ref/ beschouwd als compatibel met alle projecten. Pakketten met MSBuild props of doelen die specifiek zijn voor een of meer doelframeworks tonen echter alleen intenties die compatibel zijn met die doelframeworks.

Denk bijvoorbeeld aan een pakket PackageA dat één bestand bevat. build/net8.0/PackageA.targets Als naar dit pakket wordt verwezen door een project dat is gericht net48 op (.NET Framework, versie 4.8), verzendt NuGet geen waarschuwingen of fouten, maar selecteert ook geen assets in het pakket. Daarom wordt de consument van het pakket niet op de hoogte gesteld dat het pakket niet goed werkt met het project.

Oplossing

Zoals in het waarschuwingsbericht wordt voorgesteld, maakt u een leeg bestand met de naam _._ in de lib-map voor de vermelde TFM's. Hierdoor kan NuGet de herstelbewerking voor PackageReference projecten mislukken wanneer het project niet compatibel is met het pakket.

Als uw pakket compatibel is met alle doelframeworks, maar alleen van kracht wordt voor bepaalde doelframeworks, maakt u een bestand build/{PackageId}.props waarvan de inhoud is <Project />.