Compartilhar via


Alterações interruptivas no .NET 10

Se você estiver migrando um aplicativo para o .NET 10, 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 categoriza cada alteração interruptiva como incompatível binário ou incompatível com a origem ou alteração comportamental:

  • incompatibilidade binária – Quando executados no novo runtime ou componente, os binários existentes podem enfrentar uma alteração impactante no comportamento, como falha ao carregar ou executar. Nesse caso, necessitam de 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.

Observação

Este artigo é um trabalho em andamento. Esta não é uma lista completa de alterações interruptivas no .NET 10.

ASP.NET Core

Title Tipo de alteração
Redirecionamentos de logins de cookies desabilitados para endpoints de API conhecidos Alteração de comportamento
Substituição do método de extensão WithOpenApi Origem incompatível
Diagnóstico de exceção suprimido quando TryHandleAsync retorna true Alteração de comportamento
IActionContextAccessor e ActionContextAccessor estão obsoletos Fonte incompatível/mudança comportamental
A propriedade IncludeOpenAPIAnalyzers e os analisadores da API do MVC foram preteridos Origem incompatível
IPNetwork e ForwardedHeadersOptions.KnownNetworks são considerados obsoletos Origem incompatível
Pacote Microsoft.Extensions.ApiDescription.Client preterido Origem incompatível
Razor A compilação de runtime está obsoleta Origem incompatível
WebHostBuilder, IWebHost e WebHost estão obsoletos Origem incompatível

Contêineres

Title Tipo de alteração
As imagens padrão do .NET usam o Ubuntu Alteração de comportamento

Bibliotecas principais do .NET

Title Tipo de alteração
Alteração do comportamento de ActivitySource.CreateActivity e ActivitySource.StartActivity Alteração de comportamento
Cargas sem falhas do Arm64 SVE exigem máscara Binário/incompatível com o código-fonte
BufferedStream.WriteByte não faz mais descarregamento implícito Alteração de comportamento
Resolução de sobrecarga do C# 14 com parâmetros de intervalos Alteração de comportamento
Comportamento de mudança consistente em matemática genérica Alteração de comportamento
Propagador de contexto de rastreamento padrão atualizado para o padrão W3C Alteração de comportamento
DriveInfo.DriveFormat retorna tipos de sistema de arquivos Linux Alteração de comportamento
Anotação DynamicallyAccessedMembers removida do construtor DefaultValueAttribute Binário/incompatível com o código-fonte
Tamanho do struct explícito não permitido com InlineArray Incompatível binariamente
FilePatternMatch.Stem alterado para não anulável Fonte incompatível/mudança comportamental
GnuTarEntry e PaxTarEntry não incluem mais atime e ctime por padrão Alteração de comportamento
A análise LDAP DirectoryControl agora é mais rigorosa Alteração de comportamento
Normalização da versão do MacCatalyst Alteração de comportamento
O runtime do .NET não fornece mais manipuladores de sinal de terminação padrão Alteração de comportamento
System.Linq.AsyncEnumerable incluído em bibliotecas principais Origem incompatível
Validação do argumento Type.MakeGenericSignatureType Alteração de comportamento

Criptografia

Title Tipo de alteração
CompositeMLDsa atualizado para o draft-08 Alteração de comportamento
CoseSigner.Key pode ser nulo Mudança comportamental/incompatível com a fonte
Membros MLDsa e SlhDsa 'SecretKey' renomeado Origem incompatível
Não há suporte para primitivos criptográficos OpenSSL no macOS Alteração de comportamento
OpenSSL 1.1.1 ou posterior necessário no Unix Alteração de comportamento
A validação X500DistinguishedName é mais rigorosa Alteração de comportamento
Os parâmetros de chave X509Certificate e PublicKey podem ser nulos Mudança comportamental/incompatível com a fonte
Variável de ambiente renomeada para DOTNET_OPENSSL_VERSION_OVERRIDE Alteração de comportamento

Entity Framework Core

Alterações significativas no EF Core 10

Extensions

Title Tipo de alteração
BackgroundService executa todo ExecuteAsync como uma tarefa Alteração de comportamento
Corrigir problemas em GetKeyedService() e GetKeyedServices() com AnyKey Alteração de comportamento
Valores nulos preservados na configuração Alteração de comportamento
Mensagem não mais duplicada na saída do log do Console Alteração de comportamento
ProviderAliasAttribute movido para o assembly Microsoft.Extensions.Logging.Abstractions Origem incompatível
Removida a anotação DynamicallyAccessedMembers do código trim-unsafe Microsoft.Extensions.Configuration Incompatível binariamente

Globalization

Title Tipo de alteração
Variável de ambiente renomeada para DOTNET_ICU_VERSION_OVERRIDE Alteração de comportamento

Ferramenta de instalação

Title Tipo de alteração
API dotnet.acquire para VS Code não baixa mais sempre as versões mais recentes Alteração de comportamento

Interoperabilidade

Title Tipo de alteração
Falha ao fazer casting do objeto IDispatchEx COM para IReflect Alteração de comportamento
Aplicativos de arquivo único não procuram mais bibliotecas nativas no diretório executável Alteração de comportamento
Especificar DllImportSearchPath.AssemblyDirectory limita a busca apenas ao diretório do assembly Alteração de comportamento

Rede

Title Tipo de alteração
Suporte a HTTP/3 desabilitado por padrão com PublishTrimmed Origem incompatível
Respostas HTTP de streaming habilitadas por padrão em clientes HTTP do navegador Alteração de comportamento
Uri limites de comprimento removidos Alteração de comportamento

Reflection

Title Tipo de alteração Versão introduzida
Anotações mais restritas em InvokeMember/FindMembers/DeclaredMembers Incompatível com comportamento operacional/origem do código

SDK e MSBuild

Title Tipo de alteração
A CLI --interactive do .NET usa o padrão true em cenários de usuário Alteração de comportamento
dotnet Os comandos da CLI registram dados não relevantes de comando para stderr Alteração de comportamento
O empacotamento de ferramentas do .NET cria pacotes de ferramentas específicos do RuntimeIdentifier Alteração de comportamento
Configuração de carga de trabalho padrão de "manifestos soltos" para o modo "conjuntos de cargas de trabalho" Alteração de comportamento
A cobertura de código EnableDynamicNativeInstrumentation tem como padrão false Alteração de comportamento
dnx.ps1 arquivo não está mais incluído no SDK do .NET Origem incompatível
dotnet new sln padrões para o formato de arquivo SLNX Alteração de comportamento
dotnet package list executa a restauração Alteração de comportamento
dotnet restore audita pacotes transitivos Alteração de comportamento
dotnet tool install --local cria manifesto por padrão Alteração de comportamento
dotnet watch faz log de para stderr em vez de stdout Alteração de comportamento
project.json não há suporte em dotnet restore Origem incompatível
Suporte a impressões digitais SHA-1 descontinuado em dotnet nuget sign Alteração de comportamento
MSBUILDCUSTOMBUILDEVENTWARNING escape hatch removido Alteração de comportamento
Tratamento de recursos de cultura personalizada do MSBuild Alteração de comportamento
NU1510 é gerado para referências diretas removidas pelo NuGet Origem incompatível
Pacotes NuGet sem ativos de runtime não estão incluídos no deps.json Origem incompatível
PackageReference sem uma versão gera um erro Alteração de comportamento
PrunePackageReference privatiza referências prunáveis diretas Alteração de comportamento
Avisos HTTP promovidos a erros em dotnet package list e dotnet package search Mudança comportamental/incompatível com a fonte
Variável de ambiente NUGET_ENABLE_ENHANCED_HTTP_RETRY removida Alteração de comportamento
O NuGet registra um erro para IDs de pacote inválidas Alteração de comportamento
ToolCommandName não definido para pacotes que não são de ferramentas Origem incompatível

Serialização

Title Tipo de alteração
System.Text.Json verifica se há conflitos de nome de propriedade Alteração de comportamento
XmlSerializer não ignora mais as propriedades marcadas com ObsoleteAttribute Alteração de comportamento

Windows Forms

Title Tipo de alteração
Obsolescências da API Origem incompatível
Os aplicativos que fazem referência ao WPF e ao WinForms devem desambiguar os tipos MenuItem e ContextMenu Origem incompatível
Parâmetro renomeado em HtmlElement.InsertAdjacentElement Origem incompatível
Truncamento da imagem da caixa de seleção do TreeView Alteração de comportamento
StatusStrip usa System RenderMode por padrão Alteração de comportamento
System.Drawing OutOfMemoryException foi alterado para ExternalException Alteração de comportamento

Windows Presentation Foundation (WPF)

Title Tipo de alteração
ColumnDefinitions e RowDefinitions vazios não são permitidos Origem incompatível
Uso incorreto do DynamicResource causa falha no aplicativo Fonte incompatível/mudança comportamental