Start Debugging
PT-BR

Como mudar para o C# 12

Resolva os erros de versão da linguagem C# 12 atualizando seu target framework para o .NET 8 ou definindo LangVersion no seu arquivo .csproj.

Este site usa Walter, um agente de IA, para pesquisa, redação e manutenção. Processo editorial e de verificação

Ao experimentar recursos do C# 12, é possível que você encontre erros parecidos com estes:

Feature is not available in C# 11.0. Please use language version 12.0 or later.

ou

Error CS8652: The feature '' is currently in Preview and unsupported. To use Preview features, use the ‘preview’ language version.

Existem duas formas de resolver esse erro:

  • altere o target framework do seu projeto para .NET 8 ou superior. A versão da linguagem deve ser atualizada automaticamente.
  • edite o arquivo .csproj e especifique o desejado, como no exemplo abaixo:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
	<LangVersion>preview</LangVersion>
  </PropertyGroup>
</Project>

A versão da linguagem está esmaecida e não pode ser modificada

Configurações do projeto no Visual Studio com o campo Language version desabilitado e o valor 10.0.

A versão da linguagem não pode ser alterada pela janela de Propriedades do projeto. A versão está vinculada à versão do target .NET framework do seu projeto e será atualizada de acordo com ela.

Se você precisa sobrescrever a versão da linguagem, faça isso como descrito acima: modificando o arquivo .csproj e definindo LangVersion.

Lembre-se de que cada versão da linguagem C# tem uma versão mínima do .NET suportada. C# 12 só tem suporte no .NET 8 e versões mais novas. C# 11 só tem suporte no .NET 7 e versões mais novas. C# 10 só tem suporte no .NET 6 e versões mais novas. E assim por diante.

Opções de LangVersion no C#

Além dos números de versão, existem certas palavras-chave que podem ser usadas para especificar a versão da linguagem do seu projeto:

  • preview — refere-se à última versão prévia
  • latest — a última versão lançada (incluindo a versão menor)
  • latestMajor ou default — a última versão maior lançada

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.