Поделиться через


Предупреждение, выдаваемое для целевых объектов .NET Standard 1.x

Теперь предупреждение создается при создании проекта, который предназначен netstandard1.x для .NET 9+ SDK.

Предыдущее поведение

Ранее можно создать проект, предназначенный для .NET Standard 1.0 — .NET Standard 1.6 без предупреждений сборки.

Новое поведение

Начиная с .NET 9, если вы создаете проект, предназначенный для .NET Standard 1.0 — .NET Standard 1.6, создается следующее предупреждение:

предупреждение NETSDK1215: Целевой стандарт .NET до версии 2.0 не рекомендуется использовать. Дополнительные сведения см. в https://aka.ms/dotnet/dotnet-standard-guidance.

Представленная версия

.NET 9( предварительная версия 6)

Тип разрушающего изменения

Это изменение может повлиять на совместимость исходного кода .

Причина изменения

Предупреждение о сборке было введено, чтобы поощрить клиентов использовать .NET Standard 2.0 или .NET 6+. Если вы ориентируетесь на .NET Standard 1.x, вы ограничиваете себя выбором функций из .NET Framework 4.5, которому более 10 лет. С тех пор произошло много новаторских изменений, которые вы упустили. Кроме того, .NET Standard 1.x распространяется в виде детализированного набора пакетов NuGet, который создает большой граф зависимостей пакета и приводит к загрузке большого количества пакетов при построении проекта.

Дополнительные сведения см. «Каковы недостатки использования .NET Standard 1.x»?.

Обновите свойство TargetFramework до netstandard2.0 или netstandard2.1.

Если вы должны оставаться на старой версии .NET Standard, можно задать значение <CheckNotRecommendedTargetFramework> на false в вашем проектном файле (например, в файле .csproj) или в файле Directory.Build.props, чтобы пропустить проверку версии целевой платформы.

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

Кроме того, можно отключить предупреждение с помощью <NoWarn> свойства в файле проекта:

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

Затронутые API

Не применимо

См. также