Partilhar via


Alterações significativas no .NET 10

Se você estiver migrando um aplicativo para o .NET 10, 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 significativa como binária incompatível ou fonte incompatível, ou como uma mudança comportamental:

  • Binário incompatível - Quando executados no novo ambiente de execução ou componente, os binários existentes podem encontrar uma alteração significativa no comportamento, como falha ao carregar ou executar, e, nesses casos, exigir 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 ser compilado 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.

Observação

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

ASP.NET Core

Title Tipo de alteração
Desativação de redirecionamentos de login de cookies para endpoints de API conhecidos Mudança comportamental
Descontinuação do método de extensão WithOpenApi Fonte incompatível
Diagnóstico de exceção suprimido quando TryHandleAsync retorna true Mudança comportamental
IActionContextAccessor e ActionContextAccessor estão obsoletos Fonte incompatível/mudança comportamental
A propriedade IncludeOpenAPIAnalyzers e os analisadores de API MVC foram preteridos Fonte incompatível
IPNetwork e ForwardedHeadersOptions.KnownNetworks estão obsoletos Fonte incompatível
Pacote Microsoft.Extensions.ApiDescription.Client descontinuado Fonte incompatível
Razor A compilação em tempo de execução está obsoleta Fonte incompatível
WebHostBuilder, IWebHost e WebHost estão obsoletos Fonte incompatível

Contentores

Title Tipo de alteração
As imagens padrão do .NET utilizam o Ubuntu Mudança comportamental

Principais bibliotecas .NET

Title Tipo de alteração
Alteração de comportamento do ActivitySource.CreateActivity e do ActivitySource.StartActivity Mudança comportamental
As cargas sem falhas do Arm64 SVE requerem máscara Binário/fonte incompatível
BufferedStream.WriteByte já não executa a descarga implícita Mudança comportamental
Resolução de sobrecarga do C# 14 com parâmetros Span Mudança comportamental
Comportamento consistente de deslocamento em matemática genérica Mudança comportamental
Propagador de contexto de rastreamento padrão atualizado para o padrão W3C Mudança comportamental
DriveInfo.DriveFormat retorna tipos de sistema de arquivos Linux Mudança comportamental
Anotação DynamicallyAccessedMembers removida do construtor DefaultValueAttribute Binário/fonte incompatível
Tamanho struct explícito não permitido com InlineArray Binário incompatível
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 Mudança comportamental
análise do LDAP DirectoryControl agora é mais rigorosa Mudança comportamental
Normalização da versão do MacCatalyst Mudança comportamental
O tempo de execução do .NET não fornece mais manipuladores de sinal de terminação padrão Mudança comportamental
System.Linq.AsyncEnumerable incluído nas bibliotecas principais Fonte incompatível
Validação do argumento Type.MakeGenericSignatureType Mudança comportamental

Cryptography

Title Tipo de alteração
CompositeMLDsa atualizado para draft-08 Mudança comportamental
CoseSigner.Key pode ser null Alteração incompatível de comportamento/origem
Membros MLDsa e SlhDsa 'SecretKey' renomeados Fonte incompatível
Primitivos criptográficos OpenSSL não são suportados no macOS Mudança comportamental
OpenSSL 1.1.1 ou posterior necessário no Unix Mudança comportamental
validação X500DistinguishedName é mais rigorosa Mudança comportamental
parâmetros de chave X509Certificate e PublicKey podem ser nulos Alteração incompatível de comportamento/origem
A variável de ambiente foi renomeada para DOTNET_OPENSSL_VERSION_OVERRIDE Mudança comportamental

Núcleo do Entity Framework

Mudanças significativas no EF Core 10

Extensions

Title Tipo de alteração
BackgroundService executa todo o ExecuteAsync como uma tarefa Mudança comportamental
Corrigir problemas no GetKeyedService() e no GetKeyedServices() com o AnyKey Mudança comportamental
Valores nulos preservados na configuração Mudança comportamental
Mensagem já não é duplicada no registo do console Mudança comportamental
Atributo ProviderAlias movido para o assembly Microsoft.Extensions.Logging.Abstractions Fonte incompatível
A anotação DynamicallyAccessedMembers foi removida do código trim-unsafe Microsoft.Extensions.Configuration Binário incompatível

Globalization

Title Tipo de alteração
variável de ambiente renomeada para DOTNET_ICU_VERSION_OVERRIDE Mudança comportamental

Ferramenta de instalação

Title Tipo de alteração
A API dotnet.acquire para VS Code já não faz sempre o download das versões mais recentes Mudança comportamental

Interop

Title Tipo de alteração
Falha na conversão do objeto COM IDispatchEx para IReflect Mudança comportamental
Os aplicativos de arquivo único não procuram mais bibliotecas nativas no diretório executável Mudança comportamental
Especificando DllImportSearchPath.AssemblyDirectory pesquisa apenas o diretório assembly Mudança comportamental

Rede

Title Tipo de alteração
Suporte HTTP/3 desativado por padrão com PublishTrimmed Fonte incompatível
Streaming de respostas HTTP habilitado por padrão em clientes HTTP do navegador Mudança comportamental
Uri Limites de comprimento removidos Mudança comportamental

Reflection

Title Tipo de alteração Versão introduzida
Anotações mais restritas em InvokeMember/FindMembers/DeclaredMembers Comportamental/fonte incompatível

SDK e MSBuild

Title Tipo de alteração
A CLI --interactive do .NET é predefinida em true cenários de utilizador Mudança comportamental
dotnet Os comandos da CLI registram dados não relevantes para o comando no stderr Mudança comportamental
O empacotamento de ferramentas .NET cria pacotes de ferramentas específicos do RuntimeIdentifier Mudança comportamental
Configuração de carga de trabalho padrão do modo 'manifestos soltos' para o modo 'conjuntos de carga de trabalho' Mudança comportamental
Cobertura de código EnableDynamicNativeInstrumentation define-se por padrão como false Mudança comportamental
dnx.ps1 arquivo não está mais incluído no .NET SDK Fonte incompatível
dotnet new sln padrão para o formato de arquivo SLNX Mudança comportamental
dotnet package list executa a restauração Mudança comportamental
dotnet restore audita pacotes transitivos Mudança comportamental
dotnet tool install --local cria manifesto por padrão Mudança comportamental
dotnet watch logs em stderr em vez de stdout Mudança comportamental
project.json não suportado em dotnet restore Fonte incompatível
Suporte de impressão digital SHA-1 preterido em dotnet nuget sign Mudança comportamental
MSBUILDCUSTOMBUILDEVENTWARNING mecanismo de escape removido Mudança comportamental
Gestão de recursos culturais personalizados no MSBuild Mudança comportamental
NU1510 é gerado para referências diretas removidas pelo NuGet Fonte incompatível
Os pacotes NuGet sem ativos de tempo de execução não estão incluídos no deps.json Fonte incompatível
PackageReference sem uma versão gera um erro Mudança comportamental
PrunePackageReference privatiza referências diretas Mudança comportamental
Avisos de HTTP foram convertidos em erros em dotnet package list e dotnet package search Alteração incompatível de comportamento/origem
Variável de ambiente "NUGET_ENABLE_ENHANCED_HTTP_RETRY" removida Mudança comportamental
O NuGet registra um erro para IDs de pacote inválidas Mudança comportamental
ToolCommandName não definido para pacotes que não sejam ferramentas Fonte incompatível

Serialização

Title Tipo de alteração
System.Text.Json verifica conflitos com nomes de propriedades Mudança comportamental
XmlSerializer não ignora mais propriedades marcadas com ObsoleteAttribute Mudança comportamental

Windows Forms

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

Fundação de Apresentação do Windows (WPF)

Title Tipo de alteração
ColumnDefinitions e RowDefinitions vazias não são permitidas Fonte incompatível
O uso incorreto do DynamicResource causa falha no aplicativo Fonte incompatível/mudança comportamental