Upozornění NuGet NU5130
Některé cílové architektury deklarované ve skupině závislostí nuspec a složky lib/ref mají kompatibilní shody, ale nejsou přesné shody v jiném umístění. Pokud není úmyslné, projděte si následující seznam akcí:
- Přidejte skupinu závislostí pro . NETFramework4.7.2 na nuspec
Problém
Soubor lib/<tfm>/
nebo ref/<tfm>/
adresář v balíčku obsahuje alespoň jeden soubor pro moniker cílové architektury (TFM) zadaný v upozornění zprávy. Pro tento TFM v nuspec
souboru však neexistuje žádná skupina závislostí. To může způsobit, že příjemci balíčků budou přesvědčeni, že balíček není kompatibilní s TFM. Pokud sestavení pro zadanou sadu TFM mají různé závislosti na kompatibilním TFM definovaném ve skupině závislostí, může dojít k selhání modulu runtime projektu používajícího balíček.
Řešení
- Spuštění cíle balíčku NuGet v projektu
Pokud je to možné, použijte cíl balíčku MSBuild NuGet, protože automaticky odpovídá sestavení TFM se skupinami závislostí z cílových architektur projektu. Mějte na paměti, že váš projekt musí používat PackageReference
pro vlastní závislosti NuGet. Pokud váš projekt používá packages.config, musíte použít nuget.exe pack
a nuspec
soubor.
- Ruční úprava
nuspec
souboru
Pokud používáte vlastní nuspec
soubor, doporučujeme, aby každý TFM, pro který lib/
nebo ref/
sestavení existuje, měl mít odpovídající skupinu závislostí, i když jsou závislosti stejné jako další kompatibilní TFM. Pokud například balíček obsahuje netstandard1.0
a netstandard2.0
sestavení a závislosti jsou pro oba stejné, doporučujeme, aby oba tfmy byly uvedeny jako skupiny závislostí s duplicitními položkami závislostí.
Všimněte si, že identifikátor TFM použitý v cestách sestavení používá jiný formát než identifikátor TFM použitý ve skupinách závislostí. Zpráva upozornění určuje správný název, který se má použít ve skupině závislostí. Pokud balíček nemá žádné závislosti pro tuto cílovou architekturu, použijte prázdnou skupinu. Příklad:
<package>
<metadata>
...
<dependencies>
<group targetFramework=".NETFramework4.7.2" />
</dependencies>
</metadata>
...
<package>
lib/
Odebrání souborů neboref/
souborů
Pokud nechcete, aby byl váš balíček kompatibilní s ohlášeným TFM, upravte projekt tak, aby nebyl v balíčku pro daný TFM žádný lib/<tfm>/
soubor nebo ref/<tfm>/
soubory. Pokud se například v upozornění zobrazí zpráva, že chcete do balíčku nuspec
přidat skupinu .NETFramework4.7.2
závislostí, odeberte z balíčku všechny lib/net472/*
soubory a ref/net472/*
soubory.