Alterações significativas no .NET 11

Se você estiver migrando um aplicativo para o .NET 11, 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:

  • Binário incompatível - Quando executados 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, exigir recompilação.

  • Incompatível com a origem – quando recompilado usando o novo SDK ou componente ou para direcionar o novo runtime, o código-fonte existente pode exigir alterações de origem para compilar 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. Não é uma lista completa de alterações significativas no .NET 11.

ASP.NET Core

Consulte alterações significativas no ASP.NET Core 11.

Contêineres

Title Tipo de alteração
O teste dotnet precisa de um diretório base de artefatos VSTest gravável em contêineres Alteração de comportamento

Bibliotecas de .NET principais

Title Tipo de alteração
O comportamento de Assembly.GetCallingAssembly muda quando o suporte ao rastreamento de pilha está desabilitado Alteração de comportamento
CborReader e CborWriter impõem uma profundidade de aninhamento máxima padrão Alteração de comportamento
Os resultados complexos de valor especial agora seguem o Anexo G do C23 Alteração de comportamento
Validação crc32 adicionada ao ler entradas de arquivo ZIP Alteração de comportamento
Os métodos DateOnly e TimeOnly TryParse lançam exceção para entrada inválida Alteração de comportamento
Conversões de ponto flutuante Decimal e BigInteger são arredondadas corretamente Alteração de comportamento
DeflateStream e GZipStream gravam cabeçalhos e rodapés para conteúdo vazio Alteração de comportamento
Environment.GetCommandLineArgs()[0] preserva o nome da invocação apphost Alteração de comportamento
Environment.TickCount tornou-se consistente com o comportamento de tempo limite do Windows Alteração de comportamento
A coleção WMI gerada e os wrappers do enumerador implementam IDisposable Alteração de origem/comportamental
Math.Round e MathF.Round retornam resultados arredondados corretamente Alteração de comportamento
Mutexes nomeados usam por padrão o escopo de usuário no Unix Alteração de comportamento
NamedPipeServerStream com PipeOptions.CurrentUserOnly aperta as permissões de arquivo de soquete Unix Alteração de comportamento
Nullable.GetUnderlyingType gera exceção para subclasses personalizadas de Type Alteração de comportamento
PackagePart.GetStream() retorna um stream sem suporte a busca para partes compactadas em pacotes ReadWrite Alteração de comportamento
Obsolescências de API com IDs de diagnóstico não padrão (.NET 11) Origem incompatível
SafeFileHandle.IsAsync e FileStream.IsAsync refletem com precisão o estado de não bloqueio no Unix Alteração de comportamento
APIs de leitura de TAR verificam somas de verificação de cabeçalho ao ler Alteração de comportamento
O TarWriter usa entradas de HardLink para arquivos com hard link Alteração de comportamento
As operações de tensor alinham formas equivalentes e tensores vazios Alteração de comportamento
As operações do Tensor rejeitam layouts de armazenamento sem suporte Alteração de comportamento
ZipArchive.CreateAsync carrega ansiosamente entradas de arquivo ZIP Alteração de comportamento

Criptografia

Title Tipo de alteração
Descontinuações da API Origem incompatível
O ML-DSA composto em Windows usa a implementação nativa Alteração de comportamento
DSA removido do macOS Alteração de comportamento
O HKDF no Windows usa a implementação de CNG Alteração de comportamento
Busca de certificado do AIA do Linux limitada a duas buscas por build de cadeia Alteração de comportamento

Deployment

Title Tipo de alteração
configProperties em .runtimeconfig.dev.json substituem .runtimeconfig.json Alteração de comportamento

Extensões

Title Tipo de alteração
As sobrecargas assíncronas de ChangeToken.OnChange revinculam callbacks existentes que retornam Task Alteração de comportamento
O descarte do escopo de injeção de dependência agrega exceções Alteração de comportamento
Cadeias de caracteres vazias na configuração encadeada substituem as configurações de provedores anteriores Alteração de comportamento
FileConfigurationProvider não gera token de recarregamento após falha de carga ignorada Alteração de comportamento
O retorno de chamada FileConfigurationSource.OnLoadException é chamado para erros de E/S Alteração de comportamento
IHost.RunAsync e IHost.StopAsync lançam uma exceção quando um BackgroundService falha Alteração de comportamento
O gerador de validação de opções relata SYSLIB1205 para implementações explícitas de Validate Origem incompatível
PhysicalFilesWatcher valida caminhos raiz e caminhos do FileSystemWatcher Alteração de comportamento
Alguns pacotes Microsoft.Extensions incluídos na estrutura compartilhada Alteração de comportamento

Globalization

Title Tipo de alteração
Data mínima com suporte do Calendário Japonês corrigida Alteração de comportamento

Interoperabilidade

Title Tipo de alteração
O AOT nativo rejeita assinaturas não blittable UnmanagedCallersOnly Alteração de comportamento
NativeAOT usa o prefixo lib para saídas de biblioteca nativa no Unix Alteração de comportamento

compilador JIT

Title Tipo de alteração
Conversões de ponto flutuante para tipos integrais pequenos estão saturando Alteração de comportamento
Requisitos mínimos de hardware atualizados Alteração de comportamento

Rede

Title Tipo de alteração
As métricas de alta cardinalidade do HttpClient usam contadores observáveis Alteração de comportamento
Os downloads de certificado AIA do lado do servidor no SslStream são desabilitados por padrão Alteração de comportamento

.NET MAUI

Title Tipo de alteração
Não há suporte para Android x86 Incompatibilidade binária/alteração de comportamento
Geração de código em dispositivos móveis muda de Mono para CoreCLR Fonte incompatível/mudança comportamental
O CoreCLR substitui o runtime Mono para aplicativos móveis .NET Incompatibilidade binária/de código-fonte/alteração de comportamento
Eventos de rastreamento CoreCLR substituem eventos de rastreamento Mono Incompatibilidade binária/de código-fonte/alteração de comportamento
Alterações de comportamento de relatório de falhas em plataformas móveis Alteração de comportamento
Interfaces de depuração em plataformas móveis mudando para ICorDebug Incompatibilidade binária/de código-fonte/alteração de comportamento
Nível mínimo de API do Android elevado para 24 Alteração de comportamento
APIs de incorporação do Mono não têm mais suporte em plataformas móveis Incompatibilidade binária/de código-fonte/alteração de comportamento
As propriedades do projeto Mono não configuram mais aplicativos móveis Fonte incompatível/mudança comportamental
Configurações de runtime mono não configuram mais aplicativos móveis Incompatibilidade de comportamento/fonte
Não há suporte para UnwindNativeCode em destinos da Apple Fonte incompatível/mudança comportamental

SDK e MSBuild

Title Tipo de alteração
Scripts dnx ignoram a seleção do SDK no global.json Alteração de comportamento
Build completo ignorado para publicação Native AOT Alteração de comportamento
destino de inicialização mono não definido para aplicativos do .NET Framework Alteração de comportamento
Tratamento de comando da CLI NativeAOT habilitado por padrão Alteração de comportamento
NU1703 avisa para pacotes que usam ativos preteridos da estrutura MonoAndroid Origem incompatível
Diretório de bloqueios do NuGet movido no Linux Alteração de comportamento
NuGet pack avisa sobre IDs de pacote com caracteres restritos Alteração de comportamento
A restauração não pesquisa a pasta de pacotes globais para versões mais altas Origem incompatível
A seleção de runtime de contêiner local do SDK prefere ferramentas nativas da plataforma Alteração de comportamento
Os pacotes do mecanismo de modelo não dão mais suporte ao netstandard2.0 Binário/incompatível com o código-fonte
A instalação do pacote de modelo verifica as assinaturas do NuGet Alteração de comportamento
O VSTest removeu a dependência do Newtonsoft.Json Binário/incompatível com o código-fonte