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 binário ou incompatível com a origem ou alteração comportamental:
Incompatível binário – Quando executado em relação ao novo runtime ou componente, os binários existentes podem encontrar uma alteração interruptiva no comportamento, como falha ao carregar ou executar e, nesse caso, exigir recompilação.
Incompatível com a origem – Quando recompilado usando o novo SDK ou componente ou para direcionar ao novo runtime, o código-fonte existente pode exigir alterações de origem para que seja compilado com êxito.
Alteração comportamental – O código e os binários existentes podem se comportar de modo 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
Título | Tipo de alteração |
---|---|
ConcurrencyLimiterMiddleware está obsoleto | Incompatível com a origem |
Conversores personalizados para serialização foram removidos | Alteração de comportamento |
ISystemClock está obsoleto | Incompatível com a origem |
APIs mínimas: os parâmetros IFormFile exigem verificações anti-falsificação | Alteração de comportamento |
O middleware de limitação de taxa requer AddRateLimiter | Alteração de comportamento |
Os eventos de token de autenticação retornam um JsonWebToken | Alteração de comportamento |
O TrimMode usa o padrão completo para projetos do SDK da Web | Incompatível com a origem |
Contêineres
Título | Tipo de alteração |
---|---|
Pacote 'ca-certificates' removido de imagens alpinas | Incompatível com binários |
Imagens de contêiner do Debian atualizadas para o Debian 12 | Incompatibilidade de binário/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 |
As marcas de contêiner de várias plataformas são somente Linux | Alteração de comportamento |
Novo usuário "app" em imagens do Linux | Alteração de comportamento |
Bibliotecas principais do .NET
Criptografia
Título | Tipo de alteração | Introduzida |
---|---|---|
Tamanho da marca de autenticação do AesGcm no macOS | Alteração de comportamento | Preview 1 |
RSA.EncryptValue e RSA.DecryptValue obsoletos | Incompatível com a origem | Preview 1 |
Implantação
Título | Tipo de alteração |
---|---|
O host determina ativos específicos do RID | Incompatibilidade de binário/alteração de comportamento |
O .NET Monitor inclui apenas imagens sem distribuição | Alteração de comportamento |
StripSymbols usa true como padrão | Alteração de comportamento |
Entity Framework Core
Alterações interruptivas 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 |
ConfigurationBinder é gerado para um 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 origem |
Chaves vazias adicionadas ao dicionário pelo fichário de configuração | Alteração de comportamento |
HostApplicationBuilderSettings.Args respeitado pelo ctor 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
Title | 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
Title | Tipo de alteração |
---|---|
CreateObjectFlags.Unwrap apenas desembrulha na instância de destino | Alteração de comportamento |
Os marshallers personalizados exigem membros adicionais | Incompatível com a origem |
API IDispatchImplAttribute é removida | Incompatível com binários |
Construtor padrão público implícito JSFunctionBinding removido | Incompatível com binários |
Os tipos SafeHandle precisam ter um construtor público | Incompatível com a origem |
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 |
.
Serialização
Título | Tipo de alteração |
---|---|
BinaryFormatter foi desabilitado para a maioria dos projetos | Alteração de comportamento |
Falha de serialização baseada em reflexão em projetos PublishedTrimmed | 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 |
---|---|
Alterações de layout de âncora | Alteração de comportamento |
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 ctor ExceptionCollection gera a 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 | Incompatível com a origem |
TableLayoutStyleCollection gera a ArgumentException | Alteração de comportamento |
Tamanho mínimo e máximo de escala de formulários de nível superior para DPI | Alteração de comportamento |
A obsolescência de WFDEV002 agora é um erro | Incompatível com a origem |