Avviso NuGet NU5130

Some target frameworks declared in the dependencies group of the nuspec and the lib/ref folder have compatible matches, but not exact matches in the other location. Unless intentional, consult the list of actions below:
- Add a dependency group for .NETFramework4.7.2 to the nuspec

Problema

La lib/<tfm>/ directory o ref/<tfm>/ nel pacchetto contiene almeno un file per il moniker del framework di destinazione (TFM) specificato nel messaggio di avviso. Tuttavia, nessun gruppo di dipendenze esiste per questo TFM nel nuspec file. In questo modo, i consumer di pacchetti ritengono che il pacchetto non sia compatibile con tfm. Se gli assembly per il TFM specificato hanno dipendenze diverse rispetto al TFM compatibile definito nel gruppo di dipendenze, il progetto che usa il pacchetto potrebbe riscontrare errori di runtime.

Soluzione

  • Eseguire la destinazione del pacchetto NuGet nel progetto

Se possibile, usare la destinazione del pacchetto MSBuild di NuGet, perché corrisponde automaticamente ai TFM dell'assembly con i gruppi di dipendenze dai framework di destinazione del progetto. Si noti che il progetto deve usare PackageReference per le proprie dipendenze NuGet. Se il progetto usa packages.config, è necessario usare nuget.exe pack e un nuspec file.

  • Modificare manualmente il nuspec file

Se si usa un file personalizzato nuspec , è consigliabile che ogni TFM per cui lib/ esistano assembly o ref/ che contengano un gruppo di dipendenze corrispondente, anche se le dipendenze sono uguali a quella del TFM compatibile successivo. Ad esempio, se un pacchetto contiene netstandard1.0 assembly e netstandard2.0 e le dipendenze sono uguali per entrambi, è consigliabile elencare entrambi i TFM come gruppi di dipendenze con elementi di dipendenza duplicati.

Si noti che l'identificatore TFM usato nei percorsi dell'assembly usa un formato diverso per l'identificatore TFM usato nei gruppi di dipendenze. Il messaggio di avviso specifica il nome corretto da usare nel gruppo di dipendenze. Se il pacchetto non ha dipendenze per tale framework di destinazione, usare un gruppo vuoto. Ad esempio:

<package>
  <metadata>
    ...
    <dependencies>
      <group targetFramework=".NETFramework4.7.2" />
    </dependencies>
  </metadata>
  ...
<package>
  • Rimuovere i lib/ file o ref/

Se non si desidera che il pacchetto sia compatibile con il TFM segnalato, modificare il progetto in modo che nessun file lib/<tfm>/ o ref/<tfm>/ si trovi nel pacchetto per tale TFM. Ad esempio, se l'avviso indica di aggiungere un gruppo di dipendenze per .NETFramework4.7.2 a nuspec, rimuovere eventuali lib/net472/* file e ref/net472/* dal pacchetto.