Udostępnij za pośrednictwem


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 lub ref/

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 nuspecelementu , usuń wszystkie lib/net472/* pliki i ref/net472/* z pakietu.