Partilhar via


Alterações interruptivas do .NET 8

Se você estiver migrando um aplicativo para o .NET 8, as alterações recentes listadas aqui podem afetá-lo. As alterações são agrupadas por área de tecnologia, como ASP.NET Core ou Windows Forms.

Este artigo categoriza cada alteração de quebra como binária incompatível ou fonte incompatível, ou como uma mudança comportamental:

  • Binário incompatível - Quando executado no novo runtime ou componente, os binários existentes podem encontrar uma alteração significativa no comportamento, como falha ao carregar ou executar, e nesse caso, exigem recompilação.

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

  • Mudança comportamental - Código e binários existentes podem comportar-se de forma diferente em tempo de execução. Se o novo comportamento for indesejável, o código existente precisará ser atualizado e recompilado.

ASP.NET Core

Veja Alterações de destaque no ASP.NET Core 8.

Contentores

Título Tipo de alteração
Pacote 'ca-certificates' removido das imagens da Alpine Binário incompatível
Imagens de contêiner Debian atualizadas para Debian 12 Alteração binária incompatível/comportamental
Porta ASP.NET Core padrão alterada para 8080 Mudança comportamental
Pacote Kerberos removido das imagens Alpine e Debian Binário incompatível
Pacote 'libintl' removido das imagens alpinas Mudança comportamental
As etiquetas de contêiner multiplataforma são apenas compatíveis com Linux Mudança comportamental
Novo utilizador 'app' nas imagens do Linux Mudança comportamental

Principais bibliotecas .NET

Título Tipo de alteração
Nome da operação de atividade quando nulo Mudança comportamental
Comportamento do método AnonymousPipeServerStream.Dispose Mudança comportamental
Obsolescências de API com IDs de diagnóstico personalizadas Fonte incompatível
Mapeamento de barra invertida em caminhos de ficheiro Unix Mudança comportamental
Os métodos Base64.DecodeFromUtf8 ignoram o espaço em branco Mudança comportamental
Suporte para tipo enum com suporte em booleano removido Mudança comportamental
O formato Complex.ToString foi alterado para <a; b> Mudança comportamental
Enumeração do caminho do diretório atual da drive Mudança comportamental
Enumerable.Sum lança nova OverflowException para algumas entradas Mudança comportamental
FileStream grava quando o pipe é fechado Mudança comportamental
FindSystemTimeZoneById não retorna novo objeto Mudança comportamental
GC. GetGeneration pode retornar Int32.MaxValue Mudança comportamental
Comportamento GetFolderPath no Unix Mudança comportamental
GetSystemVersion não retorna mais ImageRuntimeVersion Mudança comportamental
ITypeDescriptorContext anotações anuláveis Fonte incompatível
APIs LDAP não disponíveis no .NET Standard / .NET Framework Binário incompatível
Legacy Console.ReadKey removido Mudança comportamental
Os construtores de métodos geram parâmetros com HasDefaultValue definido como false Mudança comportamental
Os URIs de parte do pacote agora são comparados sem distinção entre maiúsculas e minúsculas em System.IO.Packaging Mudança comportamental
O ProcessStartInfo.WindowStyle é respeitado quando UseShellExecute é falso Mudança comportamental
RuntimeIdentifier retorna a plataforma para a qual o tempo de execução foi criado Mudança comportamental
Type.GetType lança exceção para todos os tipos de elementos inválidos Mudança comportamental

Criptografia

Título Tipo de alteração Introduzido
Tamanho da tag de autenticação AesGcm no macOS Mudança comportamental Pré-visualização 1
RSA.EncryptValue e RSA.DecryptValue obsoletos Fonte incompatível Pré-visualização 1

Implementação

Título Tipo de alteração
O host determina ativos específicos do RID Alteração binária incompatível/comportamental
O .NET Monitor inclui apenas imagens sem distribuição Mudança comportamental
Os pacotes .NET para openSUSE e SLES dependem do OpenSSL 3.x Mudança comportamental
StripSymbols tem o valor predefinido como true Mudança comportamental

Núcleo do Entity Framework

Ver Alterações de emergência no EF Core 8.

Extensões

Título Tipo de alteração
ActivatorUtilities.CreateInstance se comporta consistentemente Mudança comportamental
ActivatorUtilities.CreateInstance requer provedor não nulo Mudança comportamental
O ConfigurationBinder ignora silenciosamente elementos de array inválidos Mudança comportamental
ConfigurationBinder lança uma exceção para valor não correspondente Mudança comportamental
O pacote ConfigurationManager não faz mais referência a System.Security.Permissions Fonte incompatível
O pacote DirectoryServices não faz mais referência a System.Security.Permissions Fonte incompatível
Chaves vazias adicionadas ao dicionário pelo vinculador de configurações Mudança comportamental
FromKeyedServicesAttribute.Key pode ser null Fonte incompatível
HostApplicationBuilderSettings.Args respeitado pelo ctor HostApplicationBuilder Mudança comportamental
ManagementDateTimeConverter.ToDateTime retorna uma hora local Mudança comportamental
Alteração na formatação de DateTimeOffset para System.Formats.Cbor Mudança comportamental

Globalização

Título Tipo de alteração
Conversores de data e hora respeitam o parâmetro cultural Mudança comportamental
O padrão para TwoDigitYearMax é 2049 Mudança comportamental

Interoperabilidade

Título Tipo de alteração
CreateObjectFlags.Unwrap desembrulha somente na instância de destino Mudança comportamental
Marshallers personalizados exigem membros adicionais Fonte incompatível
IDispatchImplAttribute API é removido Binário incompatível
Construtor público predefinido implícito de JSFunctionBinding removido O binário é incompatível
Os tipos SafeHandle devem ter construtor público Fonte incompatível
A resolução da biblioteca nativa do Linux não usa mais netcoredeps Mudança comportamental

Rede

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

Reflexão

Título Tipo de alteração
IntPtr não é mais usado para tipos de ponteiro de função Mudança comportamental

SDK

Título Tipo de alteração
A saída do console da CLI usa UTF-8 Mudança comportamental/Fonte e binário incompatível
A codificação do console não está em UTF-8 após a conclusão Mudança comportamental/Binária incompatível
Os containers utilizam por padrão a tag 'latest' Mudança comportamental
'dotnet pack' usa a configuração Release Mudança comportamental/Fonte incompatível
'dotnet publish' usa a configuração Release Mudança comportamental/Fonte incompatível
Saída duplicada para -getItem, -getProperty e -getTargetResult Mudança comportamental
Implícito using para System.Net.Http deixou de ser adicionado Mudança comportamental/Fonte incompatível
Eventos de compilação derivados personalizados do MSBuild preteridos Mudança comportamental
MSBuild respeita DOTNET_CLI_UI_LANGUAGE Mudança comportamental
Aplicações específicas de runtime não são auto-suficientes Incompatível entre código-fonte/binário
--arch option não implica autocontido Mudança comportamental
'Dotnet Restore' produz avisos de vulnerabilidade de segurança Mudança comportamental
'dotnet list package' avisa se a fonte não fornecer dados de vulnerabilidade Mudança comportamental
SDK usa um gráfico RID menor Mudança comportamental/Fonte incompatível
Definir DebugSymbols como false desativa a geração de PDB Mudança comportamental
Link de origem incluído no SDK do .NET Fonte incompatível
O corte não pode ser usado com o .NET Standard ou o .NET Framework Mudança comportamental
Pacotes não listados não instalados por padrão para ferramentas .NET Mudança comportamental
Arquivo .user importado em compilações externas Mudança comportamental
Requisitos de versão para o SDK do .NET 8 Fonte incompatível

Serialização

Título Tipo de alteração
BinaryFormatter desativado para a maioria dos projetos Mudança comportamental
Os projetos PublishedTrimmed falham na serialização baseada em reflexão Mudança comportamental
O desserializador baseado em reflexão processa metadados imediatamente Mudança comportamental

Windows Forms

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

Consulte também