Compartilhar via


Alterações interruptivas no .NET 9

Se você estiver migrando um aplicativo para o .NET 9, poderá ser afetado pelas alterações interruptivas listadas aqui. 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 a origem ou alteração comportamental:

  • Incompatibilidade de binário: quando executados em relação ao novo tempo de execução ou componente, os binários existentes podem encontrar uma mudança significativa no comportamento, como falha no carregamento ou na execução e, nesse caso, exigir 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

Título Tipo de alteração
DefaultKeyResolution.ShouldGenerateNewKey alterou o significado Alteração de comportamento
A exportação do certificado de desenvolvimento não cria mais a pasta Alteração de comportamento
Middleware cabeçalhos encaminhados ignora cabeçalhos X-Forwarded-* de proxies desconhecidos Alteração de comportamento
HostBuilder habilita o ValidateOnBuild/ValidateScopes no ambiente de desenvolvimento Alteração de comportamento
APIs de Mono e Emscripten herdadas não exportadas para o namespace global Origem incompatível
Tipos de middleware com vários construtores Alteração de comportamento

Contêineres

Título Tipo de alteração Versão introduzida
Imagens de contêiner não instalam mais zlib Alteração de comportamento Versão prévia 7
Imagens do .NET Monitor simplificadas para marcas somente de versão Alteração de comportamento Versão prévia 5

Bibliotecas principais do .NET

Título Tipo de alteração Versão introduzida
Adicionar um ZipArchiveEntry com CompressionLevel define sinalizadores de bits de cabeçalho do diretório central ZIP Alteração de comportamento Versão prévia 5
Suporte do UnsafeAccessor alterado para genéricos não abertos Alteração de comportamento Versão prévia 6
Obsolescências de API com IDs de diagnóstico personalizadas Origem incompatível (Vários)
Resolução de sobrecarga ambígua que afeta operadores implícitos StringValues Origem incompatível GA
Comprimento máximo do BigInteger Alteração de comportamento Versão prévia 6
BinaryReader.GetString() retorna "\uFFFD" em sequências malformadas Alteração de comportamento Versão prévia 7
A resolução de sobrecarga do C# prefere params sobrecargas do tipo span Origem incompatível
Não é possível criar um tipo de matriz System.Void Alteração de comportamento Versão prévia 1
Lançamento padrão Equals() e GetHashCode() para tipos marcados com InlineArrayAttribute Alteração de comportamento Versão prévia 6
EnumConverter valida os tipos registrados para serem uma enumeração Alteração de comportamento Versão prévia 7
FromKeyedServicesAttribute não injeta mais parâmetro não chaveado Alteração de comportamento RC 1
O retorno de chamada inicial IncrementingPollingCounter é assíncrono Alteração de comportamento RC 1
O limite de tamanho da estrutura da matriz embutida é aplicado Alteração de comportamento Versão prévia 1
InMemoryDirectoryInfo acrescenta rootDir aos arquivos Alteração de comportamento Versão prévia 1
Novas sobrecargas de método TimeSpan.From*() que aceitam inteiros Origem incompatível Versão prévia 3
Nova versão de alguns pacotes OOB Origem incompatível Versão prévia 5
RuntimeHelpers.GetSubArray retorna um tipo diferente Alteração de comportamento Versão prévia 1
Sobrecargas String.Trim(params ReadOnlySpan<char>) removidas Origem/incompatibilidade de binário GA
Suporte para variáveis de ambiente vazias Alteração de comportamento Versão prévia 6
Os nomes e comentários de ZipArchiveEntry respeitam o sinalizador UTF8 Alteração de comportamento RC 1

Criptografia

Título Tipo de alteração Versão introduzida
APIs removidas de System.Security.Cryptography.Pkcs netstandard2.0 Origem incompatível GA
SafeEvpPKeyHandle.DuplicateHandle aumenta a contagem de referências do identificador Alteração de comportamento Versão prévia 7
Alguns construtores de X509Certificate2 e X509Certificate estão obsoletos Origem incompatível Versão prévia 7
Tempo de vida da chave privada do Windows simplificado Alteração de comportamento Versão prévia 7

Implantação

Título Tipo de alteração Versão introduzida
Pacotes de runtime do Windows/macOS/Linux MonoVM preteridos Origem incompatível Versão prévia 7

Entity Framework Core

Alterações significativas no EF Core 9

Interoperabilidade

Título Tipo de alteração Versão introduzida
CET com suporte por padrão Incompatível com binários Versão prévia 6

compilador JIT

Título Tipo de alteração Versão introduzida
As conversões de ponto flutuante para inteiro estão saturando Alteração de comportamento Visualização 4
Algumas APIs SVE foram removidas Origem incompatível RC 2

Rede

Título Tipo de alteração Versão introduzida
Obsolescências de API Origem incompatível Versão prévia 6
Relatório de métricas do HttpClient server.port incondicionalmente Alteração de comportamento Versão prévia 7
O registro de logs do HttpClientFactory oculta valores de cabeçalho por padrão Alteração de comportamento RC 1
HttpClientFactory usa SocketsHttpHandler como manipulador primário Alteração de comportamento Versão prévia 6
HttpListenerRequest.UserAgent é anulável Origem incompatível Versão prévia 1
Redação de consulta de URI em eventos HttpClient EventSource Alteração de comportamento Versão prévia 7
Redação de consulta de URI em logs de IHttpClientFactory Alteração de comportamento Versão prévia 7

SDK e MSBuild

Título Tipo de alteração Versão introduzida
dotnet sln add não permite nomes de arquivo inválidos Alteração de comportamento 9.0.2xx
dotnet watch incompatível com Hot Reload para frameworks antigos Alteração de comportamento RC 1
dotnet workload alteração de saída de comandos Alteração de comportamento Versão prévia 1
installer versão do repositório não mais documentada Alteração de comportamento Versão prévia 5
Tratamento de recursos de cultura personalizada do MSBuild Alteração de comportamento 9.0.200/9.0.300
Novo RID padrão usado ao direcionar para o .NET Framework Origem incompatível GA
Logger de Terminal é padrão Alteração de comportamento Versão prévia 1
Requisitos de versão para o SDK do .NET 9 Origem incompatível GA
Aviso emitido para o destino .NET Standard 1.x Origem incompatível Versão prévia 6
Aviso emitido para o destino .NET 7 Origem incompatível GA

Serialização

Título Tipo de alteração Versão introduzida
O BinaryFormatter sempre lança Alteração de comportamento Versão prévia 6
Propriedades anuláveis de JsonDocument se desserializam para JsonValueKind.Null Alteração de comportamento Versão prévia 1
Leitor de metadados System.Text.Json agora remove o escape de nomes de propriedades de metadados Alteração de comportamento GA

Windows Forms

Título Tipo de alteração Versão introduzida
BindingSource.SortDescriptions não retorna nulo Alteração de comportamento Versão prévia 1
Alterações em anotações de nulidade Origem incompatível Versão prévia 1
ComponentDesigner.Initialize gera ArgumentNullException Alteração de comportamento Versão prévia 1
DataGridViewRowAccessibleObject.Name índice da linha inicial Alteração de comportamento Versão prévia 1
O suporte a IMsoComponent é opcional Alteração de comportamento Versão prévia 2
Novos analisadores de segurança Origem incompatível RC 1
Nenhuma exceção caso o DataGridView seja nulo Alteração de comportamento Versão prévia 1
PictureBox gera exceções HttpClient Alteração de comportamento Versão prévia 6
StatusStrip usa um renderizador padrão diferente Alteração de comportamento GA

WPF

Título Tipo de alteração Versão introduzida
GetXmlNamespaceMaps alteração de tipo Alteração comportamental/Fonte incompatível Versão prévia 3

Veja também