Condividi tramite


Avviso emesso per i destinatari di .NET Standard 1.x

Un avviso viene ora emesso quando un progetto che ha come destinazione netstandard1.x viene compilato con l'SDK di .NET 9+.

Comportamento precedente

In precedenza, è possibile compilare un progetto destinato a .NET Standard 1.0 - .NET Standard 1.6 senza avvisi di compilazione.

Nuovo comportamento

A partire da .NET 9, se si compila un progetto destinato a .NET Standard 1.0 - .NET Standard 1.6, viene generato l'avviso seguente:

avviso NETSDK1215: puntare su .NET Standard versione precedente alla 2.0 non è più consigliato. Per altri dettagli, vedere https://aka.ms/dotnet/dotnet-standard-guidance.

Versione introdotta

.NET 9 Anteprima 6

Tipo di cambiamento che interrompe la compatibilità

Questa modifica può influire sulla compatibilità del codice sorgente .

Motivo della modifica

L'avviso di compilazione è stato introdotto per incoraggiare i clienti a usare .NET Standard 2.0 o .NET 6+. Se punti su .NET Standard 1.x, ti stai limitando a un subset di .NET Framework 4.5, che ormai ha più di 10 anni ed è obsoleto. Molte innovazioni sono avvenute da allora e te le sei perse. Inoltre, .NET Standard 1.x viene distribuito come set granulare di pacchetti NuGet, che crea un grafico delle dipendenze di pacchetti di grandi dimensioni e comporta il download di molti pacchetti al momento della compilazione del progetto.

Per ulteriori informazioni, vedere Qual è lo svantaggio del targeting .NET Standard 1.x?.

Aggiornare la TargetFramework proprietà in netstandard2.0 o netstandard2.1.

Se è necessario rimanere in una versione precedente di .NET Standard, è possibile impostare su <CheckNotRecommendedTargetFramework>false nel file di progetto (ad esempio, file con estensione csproj ) o nel file Directory.Build.props per ignorare il controllo della versione del framework di destinazione:

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

In alternativa, è possibile eliminare l'avviso usando la <NoWarn> proprietà nel file di progetto:

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

Le API interessate

Non disponibile

Vedere anche