Compartilhar via


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 indica se cada alteração interruptiva é compatível com binários ou compatível com o código-fonte:

  • Compatível com binários – Os binários existentes serão carregados e executados com êxito sem recompilação e o comportamento em tempo de execução não será alterado.
  • Compatível com o código-fonte – O código-fonte será compilado com êxito sem alterações durante o redirecionamento ao novo runtime ou quando um novo SDK ou componente for usado.

ASP.NET Core

Título Compatível com binários Compatível com a origem
As ações do controlador de API tentam inferir parâmetros da DI ✔️
Precedência de variável de ambiente prefixada com ASPNET ✔️ ✔️
AuthenticateAsync para provedores de autenticação remota ✔️
Autenticação em aplicativos WebAssembly ✔️
Esquema de autenticação padrão ✔️
As IDs de evento de algumas mensagens de log do Microsoft.AspNetCore.Mvc.Core foram alteradas ✔️
Pontos de extremidade de arquivo de fallback ✔️
IHubClients e IHubCallerClients ocultam membros ✔️
Kestrel: associação HTTPS padrão removida ✔️
O Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv e o libuv.dll foram removidos
O Microsoft.Data.SqlClient foi atualizado para 4.0.1 ✔️
O Middleware não é mais adiado para o ponto de extremidade com o delegado de solicitação nula ✔️
A detecção do MVC de um corpo vazio no model binding foi alterada ✔️
Alterações na API de cache de saída
Os métodos do hub do SignalR tentam resolver parâmetros da DI ✔️

Bibliotecas principais do .NET

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

Configuração

Título Compatível com binários Compatível com a origem
Entrada System.diagnostics no app.config ✔️

Criptografia

Título Compatível com binários Compatível com a origem
Descriptografar EnvelopedCms não cancela quebra de linha duas vezes ✔️
Hora de verificação do X509ChainPolicy dinâmico ✔️
Análise de nomes amigáveis de X500DistinguishedName ✔️

Implantação

Título Compatível com binários Compatível com a origem
Todos os assemblies cortados por padrão ✔️
A pesquisa em vários níveis está desabilitada ✔️
Caminho do host x86 no Windows 64 bits ✔️ ✔️
TrimmerDefaultAction foi preterido ✔️

Entity Framework Core

Alterações interruptivas no EF Core 7

Extensões

Título Compatível com binários Compatível com a origem
A configuração de associação ao dicionário estende valores ✔️ ✔️
ContentRootPath para aplicativos iniciados pelo Windows Shell ✔️
Prefixos de variável de ambiente ✔️

Globalização

Title Compatível com binários Compatível com a origem
AS APIs de globalização usam bibliotecas de ICU no Windows Server ✔️

Interoperabilidade

Title Compatível com binários Compatível com a origem
RuntimeInformation.OSArchitecture em emulação ✔️

.NET MAUI

Título Compatível com binários Compatível com a origem
Construtores aceitam interface base em vez de tipo concreto ✔️
Métodos auxiliares de direção de fluxo removidos
Novo parâmetro UpdateBackground ✔️
Propriedade ScrollToRequest renomeada
Algumas APIs do Windows foram removidas

Rede

Título Compatível com binários Compatível com a origem
O padrão de AllowRenegotiation é false
Conteúdos de ping personalizados no Linux ✔️
Os métodos Socket.End não lançam ObjectDisposedException ✔️

SDK e MSBuild

Título Compatível com binários Compatível com a origem
RuntimeIdentifier automático para determinados projetos ✔️
RuntimeIdentifier automático somente para publicação
A saída do console da CLI usa UTF-8
Codificação de console não UTF-8 após a conclusão ✔️
Serialização do MSBuild de tipos personalizados no .NET 7
Instalações do SDK lado a lado
A ferramenta se manifesta na pasta raiz ✔️ ✔️
Requisitos de versão do SDK do .NET 7 ✔️ ✔️
teste dotnet: alternar -a para alias --arch em vez de --test-adapter-path
teste dotnet: alternar -r para alias --runtime em vez de --results-dir
A opção --output não é mais válida para comandos no nível da solução
O SDK não chama mais ResolvePackageDependencies ✔️

Serialização

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

Windows Forms

Título Compatível com binários Compatível com a origem
Obsolescências e avisos ✔️
Algumas APIs geram ArgumentNullException ✔️

WPF

Title Compatível com binários Compatível com a origem Compatível com versões anteriores
Comportamento de operações de arrastar e soltar restaurado em editores de texto ✔️ ✔️

XML e XSLT

Título Compatível com binários Compatível com a origem
XmlSecureResolver está obsoleto

Confira também