Compartilhar via


Alterações interruptivas no .NET 8

Se você estiver migrando um aplicativo para o .NET 8, 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 binariamente ou incompatível com o código-fonte, ou como uma alteração comportamental:

  • Incompatibilidade binária – Quando executado no novo runtime ou componente, os binários existentes podem encontrar uma mudança disruptiva no comportamento, como falha ao carregar ou executar, e, nesse caso, exigir recompilação.

  • Incompatível com código-fonte – Quando recompilado usando o novo SDK ou componente, ou visando o novo runtime, o código-fonte existente pode exigir alterações no código-fonte para ser compilado com sucesso.

  • 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 8.

Contêineres

Título Tipo de alteração
Pacote 'ca-certificates' removido de imagens do Alpine Incompatível com binários
Imagens de contêiner do Debian atualizadas para o Debian 12 Incompatibilidade binária/alteração de comportamento
Porta ASP.NET Core padrão alterada para 8080 Alteração de comportamento
Pacote Kerberos removido das imagens Alpine e Debian Incompatível com binários
Pacote "libintl" removido das imagens do Alpine Alteração de comportamento
Tags de contêiner multiplataforma são apenas para Linux Alteração de comportamento
Novo usuário "app" em imagens do Linux Alteração de comportamento

Bibliotecas principais do .NET

Título Tipo de alteração
Nome da operação de atividade quando nulo Alteração de comportamento
Comportamento AnonymousPipeServerStream.Dispose Alteração de comportamento
Obsolescências de API com IDs de diagnóstico personalizadas Fonte incompatível
Mapeamento de barra invertida em caminhos de arquivo UNIX Alteração de comportamento
Métodos Base64.DecodeFromUtf8 ignoram espaço em branco Alteração de comportamento
Suporte ao tipo de enum baseado em Boolean foi removido Alteração de comportamento
Formato Complex.ToString alterado para <a; b> Alteração de comportamento
Enumeração do caminho do diretório atual do drive Alteração de comportamento
Enumerable.Sum lança novo OverflowException para algumas entradas Alteração de comportamento
Escritas do FileStream quando o pipe é fechado Alteração de comportamento
FindSystemTimeZoneById não retorna um novo objeto Alteração de comportamento
GC.GetGeneration pode retornar Int32.MaxValue Alteração de comportamento
Comportamento GetFolderPath no UNIX Alteração de comportamento
O GetSystemVersion não retorna mais o ImageRuntimeVersion Alteração de comportamento
Anotações anuláveis ITypeDescriptorContext Origem incompatível
APIs LDAP não disponíveis no .NET Standard/.NET Framework Binariamente incompatível
Console.ReadKey legado removido Alteração de comportamento
Os construtores de método geram parâmetros com HasDefaultValue definido como false Alteração de comportamento
As URIs de parte do pacote agora são comparadas sem diferenciar maiúsculas de minúsculas em System.IO.Packaging Alteração de comportamento
ProcessStartInfo.WindowStyle honrado quando UseShellExecute é falso Alteração de comportamento
O RuntimeIdentifier retorna a plataforma para a qual o runtime foi criado Alteração de comportamento
Type.GetType gera exceção para todos os tipos de elemento inválidos Alteração de comportamento

Criptografia

Título Tipo de alteração Introduzida
Tamanho do tag de autenticação do AesGcm no macOS Alteração de comportamento Versão prévia 1
RSA.EncryptValue e RSA.DecryptValue obsoletos Incompatível com a fonte Versão prévia 1

Implantação

Título Tipo de alteração
O host detecta ativos específicos do RID Incompatibilidade binária/mudança de comportamento
O .NET Monitor inclui apenas imagens sem distribuição Alteração de comportamento
Os pacotes .NET para openSUSE e SLES dependem do OpenSSL 3.x Alteração de comportamento
StripSymbols usa true como padrão Alteração de comportamento

Entity Framework Core

Consulte alterações significativas no EF Core 8.

Extensões

Título Tipo de alteração
ActivatorUtilities.CreateInstance se comporta de forma consistente Alteração de comportamento
ActivatorUtilities.CreateInstance requer um provedor não nulo Alteração de comportamento
O ConfigurationBinder ignora silenciosamente elementos de matriz inválidos Alteração de comportamento
ConfigurationBinder lança exceção para valor incompatível Alteração de comportamento
O pacote ConfigurationManager não faz mais referência a System.Security.Permissions Incompatível com a origem
O pacote DirectoryServices não faz mais referência a System.Security.Permissions Incompatível com a fonte
Chaves vazias adicionadas ao dicionário pelo vinculador de configuração Alteração de comportamento
FromKeyedServicesAttribute.Key pode ser nulo Origem incompatível
HostApplicationBuilderSettings.Args respeitado pelo construtor HostApplicationBuilder Alteração de comportamento
ManagementDateTimeConverter.ToDateTime retorna uma hora local Alteração de comportamento
Alteração de formatação de System.Formats.Cbor DateTimeOffset Alteração de comportamento

Globalização

Título Tipo de alteração
Conversores de data e hora respeitam o argumento de cultura Alteração de comportamento
O padrão TwoDigitYearMax é 2049 Alteração de comportamento

Interoperabilidade

Título Tipo de alteração
CreateObjectFlags.Unwrap apenas desenrola na instância alvo Alteração de comportamento
Os marshallers personalizados exigem membros adicionais Origem incompatível
API IDispatchImplAttribute é removida Incompatível com binários
Construtor padrão público implícito JSFunctionBinding removido Incompatível a nível binário
Os tipos SafeHandle precisam ter um construtor público Origem incompatível
A resolução da biblioteca nativa do Linux não usa mais netcoredeps Alteração de comportamento

Rede

Título Tipo de alteração
SendFile lança NotSupportedException para soquetes sem conexão Alteração de comportamento
As informações do usuário nos mailto: URIs são comparadas Alteração de comportamento

Reflexão

Título Tipo de alteração
IntPtr não é mais usado para tipos de ponteiro de função Alteração de comportamento

SDK

Título Tipo de alteração
A saída do console da CLI usa UTF-8 Alteração de comportamento/Incompatível com o código-fonte e com binários
A codificação do console não está em UTF-8 após a conclusão Alteração de comportamento/Incompatibilidade binária
O padrão dos contêineres é usar a tag 'latest' Alteração de comportamento
O 'dotnet pack' usa a configuração Release Incompatibilidade da fonte/Alteração comportamental
O 'dotnet publish' usa a configuração Release Alteração comportamental/Incompatível com a origem
Saída duplicada para -getItem, -getProperty e -getTargetResult Alteração de comportamento
O using implícito para System.Net.Http não é mais adicionado Alteração comportamental/Incompatível com a fonte
Eventos personalizados derivados de compilação do MSBuild obsoletos Alteração de comportamento
O MSBuild respeita DOTNET_CLI_UI_LANGUAGE Alteração de comportamento
Aplicativos específicos de runtime não autônomos Incompatível de origem/binário
A opção --arch não implica autocontido Alteração de comportamento
"'dotnet restore' produz avisos de vulnerabilidade de segurança" Alteração de comportamento
'dotnet list package' avisa se a origem não fornece dados de vulnerabilidade Alteração de comportamento
O SDK usa um grafo RID menor Mudança de Comportamento/Incompatível com a Fonte
Definir DebugSymbols como false desabilita a geração de PDB Alteração de comportamento
O Source Link está incluído no SDK do .NET Fonte incompatível
O recurso de trimming não pode ser utilizado com o .NET Standard ou o .NET Framework. Alteração de comportamento
Pacotes não listados não instalados por padrão para ferramentas .NET Alteração de comportamento
arquivo .user importado em compilações externas Alteração de comportamento
Requisitos de versão para o SDK do .NET 8 Fonte incompatível

Serialização

Título Tipo de alteração
BinaryFormatter foi desabilitado para a maioria dos projetos Alteração de comportamento
Projetos PublishedTrimmed falham na serialização baseada em reflexão Alteração de comportamento
O desserializador baseado em reflexão resolve metadados rapidamente Alteração de comportamento

Windows Forms

Título Tipo de alteração
Certificados verificados antes de carregar imagens remotas na PictureBox Alteração de comportamento
DateTimePicker.Text é uma cadeia de caracteres vazia Alteração de comportamento
DefaultValueAttribute removido de algumas propriedades Alteração de comportamento
O construtor ExceptionCollection lança uma ArgumentException Alteração de comportamento
Os formulários são dimensionados de acordo com o AutoScaleMode Alteração de comportamento
O padrão ImageList.ColorDepth é Depth32Bit Alteração de comportamento
System.Windows.Extensions não faz referência a System.Drawing.Common Fonte incompatível
TableLayoutStyleCollection gera uma ArgumentException Alteração de comportamento
Formulários de nível superior ajustam o tamanho mínimo e máximo conforme o DPI Alteração de comportamento
A obsolescência de WFDEV002 agora é um erro Fonte incompatível

Confira também