Compartilhar via


Aviso nuget NU5127

Esse pacote não contém uma pasta lib/ou ref/ e, portanto, será tratado como compatível com todas as estruturas. Como arquivos específicos da estrutura foram encontrados no diretório de build/para net45, netstandard2.0, considere criar os seguintes arquivos vazios para restringir corretamente a compatibilidade do pacote:
-lib/net45/.
-lib/netstandard2.0/.

Questão

Projetos que usam pacotes com PackageReference apenas uso lib/ e ref/ assemblies para determinar a compatibilidade do pacote. Portanto, um pacote sem nenhum lib/ ou ref/ arquivos será considerado compatível com todos os projetos. No entanto, os pacotes que contêm adereços ou destinos do MSBuild específicos a uma ou mais estruturas de destino mostram a intenção de serem compatíveis apenas com essas estruturas de destino.

Por exemplo, considere que um pacote PackageA contém um único arquivo. build/net8.0/PackageA.targets Se esse pacote for referenciado por um direcionamento net48 de projeto (.NET Framework, versão 4.8), o NuGet não emitirá avisos ou erros, mas também não selecionará nenhum ativo do pacote. Portanto, o consumidor do pacote não será notificado de que o pacote não funciona corretamente com seu projeto.

Solução

Como a mensagem de aviso sugere, crie um arquivo vazio nomeado _._ na pasta lib para os TFMs listados. Isso permitirá que o NuGet falhe na restauração de PackageReference projetos quando o projeto for incompatível com o pacote.

Se o pacote for destinado a ser compatível com todas as estruturas de destino, mas só entrar em vigor para determinadas estruturas de destino, crie um arquivo build/{PackageId}.props cujo conteúdo seja <Project />.