Partilhar via


Aviso emitido para alvos .NET Standard 1.x

Um aviso agora é gerado quando um projeto destinado para netstandard1.x é construído com o SDK do .NET 9+.

Comportamento anterior

Anteriormente, você podia criar um projeto destinado ao .NET Standard 1.0 - .NET Standard 1.6 sem nenhum aviso de compilação.

Novo comportamento

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

aviso NETSDK1215: O direcionamento do .NET Standard antes do 2.0 não é mais recomendado. Consulte https://aka.ms/dotnet/dotnet-standard-guidance para obter mais detalhes.

Versão introduzida

.NET 9 Visualização 6

Tipo de mudança disruptiva

Essa alteração pode afetar compatibilidade da fonte.

Motivo da mudança

O aviso de compilação foi introduzido para incentivar os clientes a apontar para o .NET Standard 2.0 ou o .NET 6+. Se você segmentar o .NET Standard 1.x, estará se limitando a um subconjunto do .NET Framework 4.5, que tem mais de 10 anos. Muita inovação tem ocorrido desde então e que estás a perder. Além disso, o .NET Standard 1.x é distribuído como um conjunto granular de pacotes NuGet, o que cria um gráfico de dependência de pacote grande e resulta em muitos pacotes sendo baixados quando o projeto é criado.

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

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

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

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

Como alternativa, você pode suprimir o aviso usando a <NoWarn> propriedade em seu 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/A

Ver também