Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten pakiet nie zawiera folderu lib/ lub ref/ i dlatego będzie traktowany jako zgodny ze wszystkimi strukturami. Ponieważ pliki specyficzne dla platformy zostały znalezione w katalogu build/directory dla net45, netstandard2.0, rozważ utworzenie następujących pustych plików, aby poprawnie zawęzić zgodność pakietu:
-lib/net45/.
-lib/netstandard2.0/.
Problematyka
Projekty korzystające z pakietów z PackageReference użyciem tylko zestawów lib/ i ref/ w celu określenia zgodności pakietu.
W związku z tym pakiet bez plików lib/ lub ref/ zostanie uznany za zgodny ze wszystkimi projektami.
Jednak pakiety zawierające rekwizyty programu MSBuild lub obiekty docelowe specyficzne dla co najmniej jednej platformy docelowej pokazują intencję tylko w przypadku zgodności z tymi platformami docelowymi.
Rozważmy na przykład, że pakiet PackageA zawiera jeden plik. build/net8.0/PackageA.targets
Jeśli ten pakiet jest przywołytyny przez element docelowy net48 projektu (.NET Framework, wersja 4.8), NuGet nie będzie emitować żadnych ostrzeżeń ani błędów, ale także nie wybierze żadnych zasobów z pakietu.
W związku z tym odbiorca pakietu nie zostanie powiadomiony, że pakiet nie działa poprawnie w projekcie.
Rozwiązanie
Jak sugeruje komunikat ostrzegawczy, utwórz pusty plik o nazwie _._ w folderze lib dla wymienionych serwerów TFM.
Umożliwi to programowi NuGet niepowodzenie przywracania projektów PackageReference , gdy projekt jest niezgodny z pakietem.
Jeśli pakiet ma być zgodny ze wszystkimi platformami docelowymi, ale zaczyna obowiązywać tylko dla niektórych platform docelowych, utwórz plik build/{PackageId}.props , którego zawartość to <Project />.