Partager via


Avertissement NuGet NU5130

Certains versions cibles de .Net Framework déclarées dans le groupe de dépendances du nuspec et le dossier lib/ref ont des correspondances compatibles, mais pas exactes dans l’autre emplacement. Sauf intentionnellement, consultez la liste des actions ci-dessous :

  • Ajoutez un groupe de dépendances pour . NETFramework4.7.2 vers le nuspec

Problème

L’annuaire lib/<tfm>/ ou ref/<tfm>/ du package contient au moins un fichier pour le moniker de framework cible (TFM) spécifié dans le message d’avertissement. Toutefois, aucun groupe de dépendances n’existe pour ce TFM dans le fichier nuspec. Cela peut amener les consommateurs de packages à croire que le package n’est pas compatible avec le TFM. Si les assemblys du TFM spécifié ont des dépendances différentes par rapport au TFM compatible défini dans le groupe de dépendances, le projet utilisant le package risque Définir rencontrer des défaillances de runtime.

Solution

  • Exécuter la cible du pack NuGet sur le projet

Si possible, utilisez la cible du pack MSBuild de NuGet, car elle correspond automatiquement aux TFM d’assembly avec des groupes de dépendances à partir des versions cibles de .Net Framework du projet. Notez que votre projet doit utiliser PackageReference pour ses propres dépendances NuGet. Si votre projet utilise packages.config, vous devez utiliser nuget.exe pack et un fichier nuspec.

  • Modifier manuellement le fichier nuspec

Si vous utilisez un fichier nuspec personnalisé, nous recommandons que chaque TFM pour lequel des assemblys lib/ ou ref/ existent possède un groupe de dépendances correspondant, même si les dépendances sont identiques au TFM compatible suivant. Par exemple, si un package contient des assemblys netstandard1.0 et netstandard2.0 et que les dépendances sont identiques pour les deux, nous vous recommandons de répertorier les deux modules TFM en tant que groupes de dépendances avec des éléments de dépendance en duplicata.

Notez que l’identifiant de TFM utilisé dans les chemins d’accès d’assembly utilise un format différent de l’identifiant TFM utilisé dans les groupes de dépendances. Le message d’avertissement spécifie le nom approprié à utiliser dans le groupe de dépendances. Si votre package n’a pas de dépendances pour cette version cible de .Net Framework, utilisez un groupe vide. Par exemple :

<package>
  <metadata>
    ...
    <dependencies>
      <group targetFramework=".NETFramework4.7.2" />
    </dependencies>
  </metadata>
  ...
<package>
  • Supprimez les fichiers lib/ ou ref/

Si vous ne souhaitez pas que votre package soit compatible avec le TFM signalé, modifiez votre projet de sorte qu’aucun fichier lib/<tfm>/ ou ref/<tfm>/ ne se trouve dans le package pour ce TFM. Par exemple, si l’avertissement indique d’ajouter un groupe de dépendances pour .NETFramework4.7.2 à nuspec, supprimez tous les fichiers lib/net472/* et ref/net472/* de votre package.