Ostrzeżenie narzędzia NuGet NU5130
Niektóre struktury docelowe zadeklarowane w grupie zależności nuspec i folderu lib/ref mają zgodne dopasowania, ale nie dokładne dopasowania w innej lokalizacji. Jeśli nie jest to zamierzone, zapoznaj się z poniższą listą akcji:
- Dodaj grupę zależności dla elementu . NetFramework4.7.2 do narzędzia nuspec
Problem
Katalog lib/<tfm>/
lub ref/<tfm>/
w pakiecie zawiera co najmniej jeden plik dla programu Target Framework Moniker (TFM) określonego w komunikacie ostrzegawczym. Jednak w pliku nie istnieje żadna grupa zależności dla tego serwera TFM nuspec
. Może to spowodować, że użytkownicy pakietu uważają, że pakiet nie jest zgodny z programem TFM. Jeśli zestawy dla określonego serwera TFM mają różne zależności od zgodnego serwera TFM zdefiniowanego w grupie zależności, projekt korzystający z pakietu może napotkać błędy środowiska uruchomieniowego.
Rozwiązanie
- Uruchamianie elementu docelowego pakietu NuGet w projekcie
Jeśli to możliwe, użyj docelowego pakietu MSBuild pakietu NuGet, ponieważ automatycznie pasuje do zestawów TFM z grupami zależności z platform docelowych projektu. Należy pamiętać, że projekt musi być używany PackageReference
dla własnych zależności NuGet. Jeśli projekt używa pliku packages.config, musisz użyć pliku i go nuspec
użyćnuget.exe pack
.
- Ręczne edytowanie
nuspec
pliku
Jeśli używasz pliku niestandardowego nuspec
, zalecamy, aby każdy serwer TFM, dla którego lib/
istnieją zestawy, ref/
powinien mieć pasującą grupę zależności, nawet jeśli zależności są takie same jak następny zgodny program TFM. Jeśli na przykład pakiet zawiera netstandard1.0
i netstandard2.0
zestawy, a zależności są takie same dla obu, zalecamy, aby oba moduły TFM zostały wymienione jako grupy zależności z zduplikowanymi elementami zależności.
Należy pamiętać, że identyfikator TFM używany w ścieżkach zestawów używa innego formatu do identyfikatora TFM używanego w grupach zależności. Komunikat ostrzegawczy określa poprawną nazwę do użycia w grupie zależności. Jeśli pakiet nie ma żadnych zależności dla tej platformy docelowej, użyj pustej grupy. Na przykład:
<package>
<metadata>
...
<dependencies>
<group targetFramework=".NETFramework4.7.2" />
</dependencies>
</metadata>
...
<package>
lib/
Usuwanie plików lubref/
Jeśli nie chcesz, aby pakiet był zgodny z zgłoszonym programem TFM, zmodyfikuj projekt tak, aby żaden lib/<tfm>/
plik lub ref/<tfm>/
pliki nie były w pakiecie dla tego programu TFM. Jeśli na przykład ostrzeżenie informuje o dodaniu grupy .NETFramework4.7.2
zależności do nuspec
elementu , usuń wszystkie lib/net472/*
pliki i ref/net472/*
z pakietu.