Advertencia de 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

El directorio lib/<tfm>/ o ref/<tfm>/ del paquete contiene al menos un archivo para el Moniker de la plataforma de destino (TFM) especificado en el mensaje de advertencia. Pero no existe ningún grupo de dependencias para este TFM en el archivo nuspec. Esto puede hacer que los consumidores del paquete crean que no es compatible con el TFM. Si los ensamblados del TFM especificado tienen dependencias diferentes a las del TFM compatible definido en el grupo de dependencias, el proyecto que usa el paquete puede experimentar errores en tiempo de ejecución.

Solución

  • Ejecución del destino del paquete de NuGet en el proyecto

Si es posible, use el destino del paquete de MSBuild de NuGet, ya que compara automáticamente los TFM de ensamblado con los grupos de dependencias de las plataformas de destino del proyecto. Tenga en cuenta que el proyecto debe usar PackageReference para sus propias dependencias de NuGet. Si el proyecto usa packages.config, debe usar nuget.exe pack y un archivo nuspec.

  • Edición manual del archivo nuspec

Si usa un archivo nuspec personalizado, se recomienda que cada TFM para el que existan ensamblados lib/ o ref/ debe tener un grupo de dependencias coincidente, incluso si las dependencias son las mismas que las del siguiente TFM compatible. Por ejemplo, si un paquete contiene ensamblados netstandard1.0 y netstandard2.0, y las dependencias son las mismas para los dos, se recomienda que los dos TFM se muestren como grupos de dependencias con elementos de dependencia duplicados.

Tenga en cuenta que en el identificador de TFM usado en las rutas de acceso de ensamblado se utiliza un formato diferente al del identificador de TFM usado en los grupos de dependencias. El mensaje de advertencia especifica el nombre correcto que se va a usar en el grupo de dependencias. Si el paquete no tiene dependencias para ese marco de destino, use un grupo vacío. Por ejemplo:

<package>
  <metadata>
    ...
    <dependencies>
      <group targetFramework=".NETFramework4.7.2" />
    </dependencies>
  </metadata>
  ...
<package>
  • Quite los archivos lib/ o ref/

Si no quiere que el paquete sea compatible con el TFM notificado, modifique el proyecto de forma que no haya archivos lib/<tfm>/ o ref/<tfm>/ en el paquete para ese TFM. Por ejemplo, si la advertencia indica que se agrega un grupo de dependencias para .NETFramework4.7.2 a nuspec, quite los archivos lib/net472/* y ref/net472/* del paquete.