Compartilhar via


Aviso emitido para alvos do .NET Standard 1.x

Um aviso agora é emitido quando um projeto que tem como alvo netstandard1.x é compilado com o SDK .NET 9+.

Comportamento anterior

Anteriormente, você poderia criar um projeto direcionado ao .NET Standard 1.0 – .NET Standard 1.6 sem avisos de build.

Novo comportamento

A partir do .NET 9, se você criar um projeto direcionado ao .NET Standard 1.0 – .NET Standard 1.6, o seguinte aviso será emitido:

NETSDK1215 de aviso: não é mais recomendável direcionar o .NET Standard antes do 2.0. Confira https://aka.ms/dotnet/dotnet-standard-guidance para obter mais detalhes.

Versão introduzida

.NET 9 Versão Prévia 6

Tipo de mudança disruptiva

Essa alteração pode afetar a compatibilidade da origem.

Motivo da alteração

O aviso de build foi introduzido para incentivar os clientes a direcionar o .NET Standard 2.0 ou .NET 6+. Ao direcionar .NET Standard 1.x, você se limita a um subconjunto do .NET Framework 4.5, que já tem mais de 10 anos. Muita inovação ocorreu desde então, e você está perdendo oportunidades. Além disso, o .NET Standard 1.x é distribuído como um conjunto granular de pacotes NuGet, o que cria um grafo de dependência de pacote grande e resulta em muitos pacotes sendo baixados quando o projeto é compilado.

Para obter mais informações, consulte Qual é a desvantagem de direcionar o .NET Standard 1.x?.

Atualize sua TargetFramework propriedade para netstandard2.0 ou netstandard2.1.

Se você precisar permanecer em uma versão mais antiga do .NET Standard, poderá definir <CheckNotRecommendedTargetFramework>false no arquivo de projeto (por exemplo, arquivo .csproj ) ou no arquivo Directory.Build.props para ignorar a verificação de versão da estrutura de destino:

<PropertyGroup>
  ...
  <CheckNotRecommendedTargetFramework>false</CheckNotRecommendedTargetFramework>
</PropertyGroup>

Como alternativa, você pode suprimir o aviso usando a <NoWarn> propriedade no arquivo de projeto:

<PropertyGroup>
  ...
  <!-- Disable "Targeting .NET Standard prior to 2.0 is no longer recommended." warning -->
  <NoWarn>$(NoWarn);NETSDK1215</NoWarn>
</PropertyGroup>

APIs afetadas

Não aplicável

Consulte também