Aviso do 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

O diretório lib/<tfm>/ ou ref/<tfm>/ no pacote contém pelo menos um arquivo para o Target Framework Moniker (TFM) especificado na mensagem de aviso. No entanto, não existe nenhum grupo de dependência para esse TFM no arquivo nuspec. Isso pode fazer com que os consumidores de pacotes acreditem que o pacote não é compatível com o TFM. Se os assemblies para o TFM especificado tiverem dependências diferentes do TFM compatível definido no grupo de dependências, o projeto que usa o pacote poderá enfrentar falhas de runtime.

Solução

  • Executar o destino do pacote do NuGet no projeto

Se possível, use o destino do pacote MSBuild do NuGet, pois ele corresponde automaticamente TFMs de assembly com grupos de dependência das estruturas de destino do projeto. Observe que seu projeto deve usar PackageReference para suas próprias dependências do NuGet. Se o projeto usar packages.config, você precisará usar nuget.exe pack e o arquivo nuspec.

  • Editar manualmente o arquivo nuspec

Se você estiver usando um arquivo nuspec personalizado, recomendamos que cada TFM para o qual as assemblies lib/ ou ref/ existam tenha um grupo de dependências correspondente, mesmo que as dependências sejam as mesmas do próximo TFM compatível. Por exemplo, se um pacote contém assemblies netstandard1.0 e netstandard2.0 as dependências são as mesmas para ambos, recomendamos que ambos os TFMs sejam listados como grupos de dependência com itens de dependência duplicados.

Observe que o identificador do TFM usado nos caminhos de assembly usa um formato diferente do identificador do TFM usado em grupos de dependência. A mensagem de aviso especifica o nome correto a ser usado no grupo de dependências. Se o pacote não tiver dependências para essa estrutura de destino, use um grupo vazio. Por exemplo:

<package>
  <metadata>
    ...
    <dependencies>
      <group targetFramework=".NETFramework4.7.2" />
    </dependencies>
  </metadata>
  ...
<package>
  • Remover os arquivos lib/ ou ref/

Se você não deseja que seu pacote seja compatível com o TFM relatado, modifique seu projeto de forma que nenhum arquivo lib/<tfm>/ ou ref/<tfm>/ esteja no pacote para esse TFM. Por exemplo, se o aviso diz para adicionar um grupo de dependências para .NETFramework4.7.2 ao nuspec, remova todos o os arquivos lib/net472/* e ref/net472/* pacote.