Код C# в шаблонах не поддерживается более ранними версиями
Начиная с .NET 6, шаблоны проектов, поставляемые с пакетом SDK для .NET, используют новейшие функции языка C#. Следующие функции языка используются в коде, сформированном шаблоном, или включены по умолчанию в проекте:
- Операторы верхнего уровня
- Глобальные директивы using
- Пространства имен с областью действия файла
- Целевые типизированные новые выражения
- Ссылочные типы, допускающие значение NULL
- Асинхронные возвращаемые значения
Некоторые новые функции языка C# не поддерживаются предыдущими целевыми платформами, поэтому в следующих сценариях могут возникнуть проблемы:
- если вы используете шаблон .NET 6 и измените требуемую версию целевой платформы на предыдущую;
- если вы используете шаблон .NET 6 и выберете несколько целевых платформ путем добавления предыдущей версии целевой платформы.
Представленные версии
Пакет SDK для .NET 6.0.100
Старое поведение
В предыдущих версиях .NET можно изменить версию целевой платформы на предыдущую или добавить дополнительную версию без изменения кода C#, созданного с помощью шаблона проекта.
Новое поведение
Начиная с .NET 6, при изменении или добавлении целевой платформы может потребоваться изменить созданный с помощью шаблона код C#, чтобы неподдерживаемые функции языка не использовались. Проект не скомпилируется без этих изменений. Ошибки и предупреждения компилятора обычно указывают, как изменить созданный код, чтобы обеспечить его совместимость с новой целевой платформой.
Категория изменения
Это изменение влияет на совместимость исходного кода.
Причина изменения
Мы хотим, чтобы шаблоны проектов синхронизировались с новыми функциями языка. Основной сценарий использования при требовании последней платформы основан на новейших возможностях языка C#.
Рекомендуемое действие
При возникновении ошибок и предупреждений во время компиляции при перенацеливании на более раннюю версию платформы используйте эти сведения, чтобы изменить созданный код и обеспечить его совместимость с выбранной версией.
Чтобы избежать ошибок во время компиляции при требовании использовать более старую платформу, следуйте приведенным ниже рекомендациям.
- Не меняйте версию целевой платформы на предыдущую. Вместо этого выберите целевую платформу во время создания проекта в Visual Studio или в командной строке с помощью
dotnet new <templateName> --framework <targetFramework>
. - При создании проекта с несколькими целевыми платформами выберите самую раннюю версию целевой платформы при создании проекта. Добавьте дополнительные целевые платформы после создания проекта.
Затронутые API
Н/Д