Alterações interruptivas no .NET 7

Se você estiver migrando um aplicativo para o .NET 7, as alterações interruptivas listadas aqui poderão afetar você. As alterações são agrupadas por área de tecnologia, como ASP.NET Core ou Windows Forms.

Este artigo categoriza cada alteração interruptiva como incompatível binário ou incompatível com o código-fonte ou como uma alteração comportamental:

  • incompatibilidade binária – Quando executados no novo runtime ou componente, os binários existentes podem enfrentar uma alteração impactante no comportamento, como falha ao carregar ou executar. Nesse caso, necessitam de recompilação.

  • Fonte incompatível - Quando recompilado usando o novo SDK ou componente ou para destinar ao novo tempo de execução, o código-fonte existente pode exigir alterações para ser compilado com êxito.

  • Alteração comportamental – o código e os binários existentes podem se comportar de forma diferente no runtime. Se o novo comportamento for indesejável, o código existente precisará ser atualizado e recompilado.

ASP.NET Core

Veja alterações significativas no ASP.NET Core 7.

Bibliotecas principais do .NET

Título Tipo de alteração
Obsolescências de API com IDs de diagnóstico não padrão Origem incompatível
Obsolescências de API com IDs de diagnóstico não padrão Origem incompatível
Asteriscos não são mais aceitos para atributos de nomes de assembly Alteração comportamental
APIs de serialização BinaryFormatter produzem erros de compilador Origem incompatível
BrotliStream não permite mais valores de CompressionLevel indefinidos Incompatível binariamente
Projetos C++/CLI no Visual Studio Origem incompatível
Alterações nas exceções de API de invocação de reflexão Incompatível binariamente
Assembly de coleção no AssemblyLoadContext não colecionável Incompatível binariamente
Alteração de precisão dos métodos de adição de DateTime Alteração comportamental
Igual à alteração de comportamento do método para NaN Incompatível binariamente
Comportamento de retorno de chamada do EventSource Alteração comportamental
Restrição de tipo genérico em PatternContext<T> Binário/incompatível com o código-fonte
Estratégia de FileStream herdada removida Incompatível binariamente
Suporte à biblioteca para estruturas mais antigas Binário/incompatível com o código-fonte
Precisão máxima para cadeias de caracteres de formato numérico Incompatível binariamente
Padrões de régua com intervalos corrigidos Alteração comportamental
O SerializationFormat.Binary está obsoleto Binário/incompatível com o código-fonte
A opção de configuração System.Drawing.Common foi removida Alteração comportamental
Pacote NuGet System.Runtime.CompilerServices.Unsafe Alteração comportamental
Campos de tempo em links simbólicos Incompatível binariamente
Rastreamento de entradas de cache vinculadas Incompatível binariamente
Validar o CompressionLevel para BrotliStream Incompatível binariamente

Configuração

Título Tipo de alteração
Entrada System.diagnostics no app.config Incompatível binariamente

Criptografia

Título Tipo de alteração
Descriptografar EnvelopedCms não cancela quebra de linha duas vezes Incompatível binariamente
Hora de verificação do X509ChainPolicy dinâmico Incompatível binariamente
Análise de nomes amigáveis de X500DistinguishedName Incompatível binariamente

Implantação

Título Tipo de alteração
Todos os assemblies cortados por padrão Origem incompatível
A pesquisa em vários níveis está desabilitada Incompatível binariamente
Caminho do host x86 no Windows 64 bits Alteração comportamental
TrimmerDefaultAction foi preterido Origem incompatível

Entity Framework Core

Consulte alterações significativas no EF Core 7.

Extensões

Título Tipo de alteração
A configuração de associação ao dicionário estende valores Alteração comportamental
ContentRootPath para aplicativos iniciados pelo Windows Shell Incompatível binariamente
Prefixos de variável de ambiente Incompatível binariamente

Globalização

Título Tipo de alteração
AS APIs de globalização usam bibliotecas de ICU no Windows Server Incompatível binariamente

Interoperabilidade

Título Tipo de alteração
RuntimeInformation.OSArchitecture em emulação Incompatível binariamente

.NET MAUI

Título Tipo de alteração
Construtores aceitam interface base em vez de tipo concreto Incompatível binariamente
Métodos auxiliares de direção de fluxo removidos Binário/incompatível com o código-fonte
Novo parâmetro UpdateBackground Incompatível binariamente
Propriedade ScrollToRequest renomeada Binário/incompatível com o código-fonte
Algumas APIs do Windows foram removidas Binário/incompatível com o código-fonte

Rede

Título Tipo de alteração
O padrão de AllowRenegotiation é false Binário/incompatível com o código-fonte
Conteúdos de ping personalizados no Linux Incompatível binariamente
Os métodos Socket.End não lançam ObjectDisposedException Incompatível binariamente

SDK e MSBuild

Título Tipo de alteração
RuntimeIdentifier automático somente para publicação Binário/incompatível com o código-fonte
A saída do console da CLI usa UTF-8 Binário/incompatível com o código-fonte
Codificação de console não UTF-8 após a conclusão Incompatível binariamente
Serialização do MSBuild de tipos personalizados no .NET 7 Binário/incompatível com o código-fonte
Instalações do SDK lado a lado Binário/incompatível com o código-fonte
A ferramenta se manifesta na pasta raiz Alteração comportamental
Requisitos de versão do SDK do .NET 7 Alteração comportamental
teste dotnet: alternar -a para alias --arch em vez de --test-adapter-path Binário/incompatível com o código-fonte
teste dotnet: alternar -r para alias --runtime em vez de --results-dir Binário/incompatível com o código-fonte
A opção --output não é mais válida para comandos no nível da solução Binário/incompatível com o código-fonte
O SDK não chama mais ResolvePackageDependencies Origem incompatível

Serialização

Título Tipo de alteração
DataContractSerializer retém o sinal ao desserializar -0 Incompatível binariamente
Desserializar o tipo de versão com espaço em branco à esquerda ou à direita Incompatível binariamente
O construtor de cópia JsonSerializerOptions inclui JsonSerializerContext Incompatível binariamente
Serialização polimórfica para tipos de objeto Incompatível binariamente
Fallback do gerador de origem System.Text.Json Incompatível binariamente

Windows Forms

Título Tipo de alteração
Obsolescências e avisos Origem incompatível
Algumas APIs geram ArgumentNullException Incompatível binariamente

WPF

Título Tipo de alteração
Comportamento de operações de arrastar e soltar restaurado em editores de texto Alteração comportamental

XML e XSLT

Título Tipo de alteração
XmlSecureResolver está obsoleto Binário/incompatível com o código-fonte

Confira também