Compartilhar via


O código C# em modelos sem suporte em versões anteriores

A partir do .NET 6, os modelos de projeto que são fornecidos com o SDK do .NET usam os recursos de linguagem C# mais recentes. Os seguintes recursos de linguagem são usados no código gerado pelo modelo ou habilitados por padrão no projeto:

Alguns dos recursos de linguagem C# mais recentes não são compatíveis com estruturas de destino anteriores, portanto, você pode enfrentar problemas nos seguintes cenários:

  • Quando você usa um modelo do .NET 6 e, em seguida, altera a estrutura de destino para uma versão anterior.
  • Quando você usa um modelo do .NET 6 e, em seguida, vários destinos adicionando uma versão anterior da estrutura de destino.

Versão introduzida

SDK do .NET 6.0.100

Comportamento antigo

Nas versões anteriores do .NET, você pode alterar a estrutura de destino para uma versão anterior ou adicionar uma versão adicional sem precisar alterar o código C# criado pelo modelo de projeto.

Novo comportamento

A partir do .NET 6, quando você altera ou adiciona uma estrutura de destino, talvez seja necessário alterar o código C# gerado pelo modelo para evitar o uso de recursos de linguagem sem suporte. O projeto não será compilado sem essas alterações. Os erros e avisos do compilador geralmente orientam você sobre como alterar o código gerado para torná-lo compatível com a nova estrutura de destino.

Categoria da alteração

Essa alteração afeta a compatibilidade de origem.

Motivo da alteração

Queremos que os modelos de projeto sejam sincronizados com os recursos de linguagem mais recentes. O cenário de uso principal de direcionamento da estrutura mais recente usa os recursos de linguagem C# mais recentes.

Se você encontrar erros e avisos em tempo de compilação ao redirecionar para uma versão anterior da estrutura, use essas informações para orientar você na alteração do código gerado para torná-lo compatível com a estrutura de destino selecionada.

Para evitar erros de tempo de compilação ao direcionar uma estrutura mais antiga, siga estas sugestões:

  • Evite alterar a estrutura de destino para uma versão anterior. Em vez disso, selecione a estrutura de destino desejada durante a criação do projeto no Visual Studio ou na linha de comando usando dotnet new <templateName> --framework <targetFramework>.
  • Ao criar um projeto de vários destinos, selecione a versão mais baixa da estrutura de destino ao criar o projeto. Inclua as estruturas de destino adicionais após a criação do projeto.

APIs afetadas

N/D