Erro do NuGet NU1019

Scenario

O projeto 'MyProject' contém um 'net10.0/benchmark' do TargetFramework com caracteres não permitidos. Os nomes targetFramework devem conter apenas caracteres ASCII e não devem conter separadores de caminho.

Questão

O arquivo de projeto tem um valor ou TargetFramework um TargetFrameworks valor que contém caracteres não permitidos. O NuGet não permite os seguintes caracteres em nomes de estrutura de destino:

  • Separadores de caminho (/ ou \): esses caracteres quebram o formato de arquivo de ativos e são sempre não permitidos.
  • Caracteres não ASCII: os nomes da estrutura de destino devem conter apenas caracteres ASCII (caracteres com um valor igual a 127 ou menos).

Essa validação é fechada atrás da SdkAnalysisLevel propriedade:

  • Nível de análise do SDK 10.0.300 ou posterior: separadores de caminho em nomes de estrutura de destino geram um erro. Caracteres não ASCII geram um aviso.
  • Nível de análise do SDK 11.0.100 ou posterior: separadores de caminho e caracteres não ASCII geram um erro.

Solução

Renomeie os valores da estrutura de destino no arquivo de projeto para usar apenas caracteres ASCII e remover todos os separadores de caminho.

Por exemplo, altere:

<PropertyGroup>
  <TargetFramework>net10.0/benchmark</TargetFramework>
</PropertyGroup>

Para um nome de estrutura de destino válido:

<PropertyGroup>
  <TargetFramework>net10.0-benchmark</TargetFramework>
</PropertyGroup>