Freigeben über


NuGet-Warnung NU5130

Einige Zielframeworks, die in der Abhängigkeitsgruppe der Nuspec-Datei und des Ordners „lib/ref“ deklariert sind, weisen kompatible Übereinstimmungen auf, aber keine exakten Übereinstimmungen am anderen Speicherort. Sofern keine Absicht vorliegt, sehen Sie sich die nachstehende Liste der Aktionen an:

  • Fügen Sie eine Abhängigkeitsgruppe für .NETFramework4.7.2 für die Nuspec-Datei hinzu.

Problem

Das lib/<tfm>/- oder ref/<tfm>/-Verzeichnis im Paket enthält mindestens eine Datei für den Target Framework Moniker (TFM), der in der Warnmeldung angegeben ist. Für diesen TFM in der nuspec-Datei ist jedoch keine Abhängigkeitsgruppe vorhanden. Dies kann dazu führen, dass Paketkunden glauben, dass das Paket nicht mit dem TFM kompatibel ist. Wenn die Assemblies für das angegebene TFM andere Abhängigkeiten haben als das kompatible TFM, das in der Gruppe der Abhängigkeiten definiert ist, kann es bei dem Projekt, das das Paket verwendet, zu Laufzeitfehlern kommen.

Lösung

  • Ausführen des NuGet-Paketziels für das Projekt

Wenn möglich, verwenden Sie das MSBuild-Paketziel von NuGet, da es automatisch Assembly-TFMs mit Abhängigkeitsgruppen aus den Zielframeworks des Projekts übereinstimmt. Beachten Sie, dass Ihr Projekt für PackageReference seine eigenen NuGet-Abhängigkeiten verwendet werden muss. Wenn Ihr Projekt packages.config verwendet, müssen Sie eine nuget.exe pack und nuspecDatei verwenden.

  • Manuelles Bearbeiten der nuspec-Datei

Wenn Sie eine benutzerdefinierte nuspec-Datei verwenden, wird empfohlen, dass jedes TFM, für das lib/ oder ref/, für welche Assemblys vorhanden sind, über eine übereinstimmende Abhängigkeitsgruppe verfügen sollte, auch wenn die Abhängigkeiten mit dem nächsten kompatiblen TFM identisch sind. Wenn ein Paket z. B. netstandard1.0- und netstandard2.0-Assemblys enthält und die Abhängigkeiten für beide identisch sind, wird empfohlen, dass beide TFMs als Abhängigkeitsgruppen mit doppelten Abhängigkeitselementen aufgeführt werden.

Beachten Sie, dass der in den Assemblypfaden verwendete TFM-Bezeichner ein anderes Format als der TFM-Bezeichner verwendet, der in Abhängigkeitsgruppen verwendet wird. Die Warnmeldung gibt den richtigen Namen an, der in der Abhängigkeitsgruppe verwendet werden soll. Wenn ihr Paket keine Abhängigkeiten für dieses Zielframework aufweist, verwenden Sie eine leere Gruppe. Zum Beispiel:

<package>
  <metadata>
    ...
    <dependencies>
      <group targetFramework=".NETFramework4.7.2" />
    </dependencies>
  </metadata>
  ...
<package>
  • Entfernen Sie die lib/ oder ref/ Dateien.

Wenn Ihr Paket nicht mit dem gemeldeten TFM kompatibel sein soll, ändern Sie Das Projekt so, dass sich keine lib/<tfm>/ oder ref/<tfm>/ Dateien im Paket für dieses TFM befinden. Wenn die Warnung z. B. besagt, dass eine Abhängigkeitsgruppe für .NETFramework4.7.2 zum nuspec hinzugefügt werden soll, dann entfernen Sie alle lib/net472/* und ref/net472/* Dateien aus Ihrem Paket.