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


Код C# в шаблонах не поддерживается более ранними версиями

Начиная с .NET 6, шаблоны проектов, поставляемые с пакетом SDK для .NET, используют новейшие функции языка C#. Следующие функции языка используются в коде, сформированном шаблоном, или включены по умолчанию в проекте:

Некоторые новые функции языка C# не поддерживаются предыдущими целевыми платформами, поэтому в следующих сценариях могут возникнуть проблемы:

  • если вы используете шаблон .NET 6 и измените требуемую версию целевой платформы на предыдущую;
  • если вы используете шаблон .NET 6 и выберете несколько целевых платформ путем добавления предыдущей версии целевой платформы.

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

Пакет SDK для .NET 6.0.100

Старое поведение

В предыдущих версиях .NET можно изменить версию целевой платформы на предыдущую или добавить дополнительную версию без изменения кода C#, созданного с помощью шаблона проекта.

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

Начиная с .NET 6, при изменении или добавлении целевой платформы может потребоваться изменить созданный с помощью шаблона код C#, чтобы неподдерживаемые функции языка не использовались. Проект не скомпилируется без этих изменений. Ошибки и предупреждения компилятора обычно указывают, как изменить созданный код, чтобы обеспечить его совместимость с новой целевой платформой.

Категория изменения

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

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

Мы хотим, чтобы шаблоны проектов синхронизировались с новыми функциями языка. Основной сценарий использования при требовании последней платформы основан на новейших возможностях языка C#.

При возникновении ошибок и предупреждений во время компиляции при перенацеливании на более раннюю версию платформы используйте эти сведения, чтобы изменить созданный код и обеспечить его совместимость с выбранной версией.

Чтобы избежать ошибок во время компиляции при требовании использовать более старую платформу, следуйте приведенным ниже рекомендациям.

  • Не меняйте версию целевой платформы на предыдущую. Вместо этого выберите целевую платформу во время создания проекта в Visual Studio или в командной строке с помощью dotnet new <templateName> --framework <targetFramework>.
  • При создании проекта с несколькими целевыми платформами выберите самую раннюю версию целевой платформы при создании проекта. Добавьте дополнительные целевые платформы после создания проекта.

Затронутые API

Н/Д