Alterações interruptivas no .NET 9
Se você estiver migrando um aplicativo para o .NET 9, 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.
Observação
Este artigo é um trabalho em andamento. Esta não é uma lista completa de alterações interruptivas no .NET 9. Para consultar alterações interruptivas que ainda estão pendentes de publicação, confira Problemas do .NET.
ASP.NET Core
Título | Tipo de alteração | Versão introduzida |
---|---|---|
DefaultKeyResolution.ShouldGenerateNewKey teve o significado alterado | Alteração de comportamento | Preview 3 |
A exportação do certificado de desenvolvimento não cria mais a pasta | Alteração de comportamento | RC 1 |
O HostBuilder habilita o ValidateOnBuild/ValidateScopes no ambiente de desenvolvimento | Alteração de comportamento | Versão prévia 7 |
Tipos de middleware com vários construtores | Alteração de comportamento | RC 1 |
Contêineres
Título | Tipo de alteração | Versão introduzida |
---|---|---|
As imagens de contêiner do .NET 9 não instalam mais o zlib | Alteração de comportamento | Versão prévia 7 |
Bibliotecas principais do .NET
Criptografia
Título | Tipo de alteração | Versão introduzida |
---|---|---|
SafeEvpPKeyHandle.DuplicateHandle aumenta a contagem de referências do identificador | Alteração de comportamento | Versão prévia 7 |
Alguns construtores de X509Certificate2 e X509Certificate estão obsoletos | Incompatível com a origem | Versão prévia 7 |
Tempo de vida da chave privada do Windows simplificado | Alteração de comportamento | Versão prévia 7 |
Implantação
Título | Tipo de alteração | Versão introduzida |
---|---|---|
Pacotes de runtime do Windows/macOS/Linux MonoVM preteridos | Incompatível com a origem | Versão prévia 7 |
Interoperabilidade
Title | Tipo de alteração | Versão introduzida |
---|---|---|
CET suportado por padrão | Incompatível com binários | Versão prévia 6 |
Compilador JIT
Título | Tipo de alteração | Versão introduzida |
---|---|---|
As conversões de ponto flutuante para inteiro estão saturando | Alteração de comportamento | Visualização 4 |
Algumas APIs SVE foram removidas | Incompatível com a origem | RC 2 |
Rede
Título | Tipo de alteração | Versão introduzida |
---|---|---|
Obsolescências de API | Incompatível com a origem | Versão prévia 6 |
Relatório de métricas server.port HttpClient incondicionalmente |
Alteração de comportamento | Versão prévia 7 |
O registro em log HttpClientFactory edita valores de cabeçalho por padrão | Alteração de comportamento | RC 1 |
HttpClientFactory usa SocketsHttpHandler como manipulador primário | Alteração de comportamento | Versão prévia 6 |
HttpListenerRequest.UserAgent é anulável | Incompatível com a origem | Preview 1 |
Redação de consulta de URI em eventos HttpClient EventSource | Alteração de comportamento | Versão prévia 7 |
Redação de consulta de URI em logs IHttpClientFactory | Alteração de comportamento | Versão prévia 7 |
SDK e MSBuild
Título | Tipo de alteração | Versão introduzida |
---|---|---|
dotnet restore audita pacotes transitivos |
Alteração de comportamento | Versão prévia 6 |
dotnet watch incompatível com Recarga Dinâmica para estruturas antigas |
Alteração de comportamento | RC 1 |
Alteração de saída de comandos dotnet workload |
Alteração de comportamento | Preview 1 |
A versão do repositório installer não é mais documentada |
Alteração de comportamento | Preview 5 |
O agente de terminal é o padrão | Alteração de comportamento | Preview 1 |
Requisitos de versão para o SDK do .NET 9 | Incompatível com a origem | GA |
Aviso emitido para o destino .NET Standard 1.x | Incompatível com a origem | Versão prévia 6 |
Aviso emitido para o destino do .NET 7 | Incompatível com a origem | GA |
Serialização
Título | Tipo de alteração | Versão introduzida |
---|---|---|
O BinaryFormatter sempre lança | Alteração de comportamento | Versão prévia 6 |
Windows Forms
Título | Tipo de alteração | Versão introduzida |
---|---|---|
BindingSource.SortDescriptions não retorna nulo | Alteração de comportamento | Preview 1 |
Alterações em anotações de nulidade | Incompatível com a origem | Preview 1 |
ComponentDesigner.Initialize gera ArgumentNullException | Alteração de comportamento | Preview 1 |
DataGridViewRowAccessibleObject.Name índice da linha inicial | Alteração de comportamento | Preview 1 |
O suporte a IMsoComponent é opcional | Alteração de comportamento | Preview 2 |
Novos analisadores de segurança | Incompatível com a origem | RC 1 |
Nenhuma exceção se DataGridView for nulo | Alteração de comportamento | Preview 1 |
PictureBox gera exceções HttpClient | Alteração de comportamento | Versão prévia 6 |
WPF
Título | Tipo de alteração | Versão introduzida |
---|---|---|
GetXmlNamespaceMaps alteração de tipo |
Alteração comportamental/Incompatível com a origem | Preview 3 |