Condividi tramite


Avviso NuGet NU5130

Alcuni framework di destinazione dichiarati nel gruppo di dipendenze di nuspec e la cartella lib/ref hanno corrispondenze compatibili, ma non corrispondenze esatte nell'altra posizione. A meno che non sia intenzionale, consultare l'elenco delle azioni seguenti:

  • Aggiungere un gruppo di dipendenze per . NETFramework4.7.2 per 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.