Sdílet prostřednictvím


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ů nebo ref/ 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 nuspecpřidat skupinu .NETFramework4.7.2 závislostí, odeberte z balíčku všechny lib/net472/* soubory a ref/net472/* soubory.