Cambios importantes en .NET 11

Si va a migrar una aplicación a .NET 11, los cambios importantes que se enumeran aquí pueden afectarle. Los cambios se agrupan por área tecnológica, como ASP.NET Core o Windows Forms.

En este artículo se clasifica cada cambio disruptivo como no compatible con el binario, no compatible con el origen o cambio de comportamiento:

  • Incompatibilidad binaria - cuando se ejecuta en el nuevo entorno de ejecución o componente, los archivos binarios existentes pueden experimentar un cambio importante en el comportamiento, como no cargarse ni ejecutarse, y, si es así, requieren recompilación.

  • Incompatible a nivel de código fuente - cuando se vuelve a compilar mediante el nuevo SDK o componente o para tener como destino el nuevo entorno de ejecución, el código fuente existente puede requerir cambios en el código fuente para compilarse correctamente.

  • Cambio de comportamiento : el código y los archivos binarios existentes pueden comportarse de forma diferente en tiempo de ejecución. Si el nuevo comportamiento no es deseable, el código existente debe actualizarse y volver a compilarse.

Nota:

Este artículo sigue en desarrollo. No es una lista completa de cambios importantes en .NET 11.

ASP.NET Core

Consulte cambios importantes en ASP.NET Core 11.

Containers

Title Tipo de cambio
dotnet test necesita un directorio base de artefactos VSTest grabable en contenedores Cambio de comportamiento

Bibliotecas principales de .NET

Title Tipo de cambio
El comportamiento de Assembly.GetCallingAssembly cambia cuando la compatibilidad con el seguimiento de la pila está deshabilitada Cambio de comportamiento
CborReader y CborWriter aplican una profundidad de anidamiento máxima predeterminada Cambio de comportamiento
Los resultados complejos de valor especial siguen ahora el Anexo G C23 Cambio de comportamiento
Validación CRC32 agregada al leer entradas de archivo ZIP Cambio de comportamiento
Los métodos TryParse de DateOnly y TimeOnly producen una excepción con entradas no válidas Cambio de comportamiento
Las conversiones de punto flotante Decimal y BigInteger se redondean correctamente Cambio de comportamiento
DeflateStream y GZipStream escriben encabezados y pies de página para cargas vacías Cambio de comportamiento
Environment.GetCommandLineArgs()[0] conserva el nombre de invocación de apphost. Cambio de comportamiento
Environment.TickCount se hizo coherente con el comportamiento de tiempo de espera de Windows Cambio de comportamiento
Los envoltorios de colección y enumerador de WMI generados implementan IDisposable Cambio de origen/comportamiento
Math.Round y MathF.Round devuelven resultados redondeados correctamente Cambio de comportamiento
Los mutex con nombre se usan por defecto en el ámbito de usuario en Unix Cambio de comportamiento
NamedPipeServerStream con PipeOptions.CurrentUserOnly ajusta los permisos de archivo de socket unix. Cambio de comportamiento
Nullable.GetUnderlyingType genera una excepción con subclases personalizadas de Type Cambio de comportamiento
PackagePart.GetStream() devuelve un flujo no posicionable para partes comprimidas en paquetes ReadWrite Cambio de comportamiento
Obsolescencias de API con identificadores de diagnóstico no predeterminados (.NET 11) Fuente incompatible
SafeFileHandle.IsAsync y FileStream.IsAsync reflejan con precisión el estado de no bloqueo en Unix Cambio de comportamiento
Las API de lectura de TAR comprueban las sumas de comprobación de encabezado al leer Cambio de comportamiento
TarWriter usa entradas de HardLink para archivos con enlaces duros Cambio de comportamiento
Las operaciones de Tensor alinean formas equivalentes y tensores vacíos Cambio de comportamiento
Las operaciones de tensor rechazan los formatos de almacenamiento no admitidos Cambio de comportamiento
ZipArchive.CreateAsync carga por adelantado las entradas del archivo ZIP Cambio de comportamiento

Criptografía

Title Tipo de cambio
Obsolescencias de API Fuente incompatible
La ML-DSA compuesta en Windows usa la implementación nativa Cambio de comportamiento
DSA eliminado de macOS Cambio de comportamiento
HKDF en Windows usa la implementación de CNG Cambio de comportamiento
Obtención de certificados AIA de Linux limitada a dos obtenciones por construcción de la cadena Cambio de comportamiento

Deployment

Title Tipo de cambio
configProperties en .runtimeconfig.dev.json sobrescriben .runtimeconfig.json Cambio de comportamiento

Extensiones

Title Tipo de cambio
Las sobrecargas asincrónicas ChangeToken.OnChange vuelven a enlazar las devoluciones de llamada existentes que devuelven tareas Cambio de comportamiento
La eliminación del ámbito de inyección de dependencias agrega excepciones Cambio de comportamiento
Las cadenas vacías en la configuración encadenada invalidan los proveedores de configuración anteriores Cambio de comportamiento
FileConfigurationProvider no genera el token de recarga después de un error de carga omitido Cambio de comportamiento
Se invoca el callback FileConfigurationSource.OnLoadException para los errores de E/S. Cambio de comportamiento
IHost.RunAsync e IHost.StopAsync generan una excepción cuando se produce un error en BackgroundService Cambio de comportamiento
El generador de validación de opciones informa de SYSLIB1205 para implementaciones explícitas de Validate Fuente incompatible
PhysicalFilesWatcher valida las rutas raíz y las rutas de FileSystemWatcher Cambio de comportamiento
Algunos paquetes Microsoft.Extensions incluidos en el marco compartido Cambio de comportamiento

Globalización

Title Tipo de cambio
Fecha mínima admitida del calendario japonés corregida Cambio de comportamiento

Interop

Title Tipo de cambio
AOT nativo rechaza firmas UnmanagedCallersOnly no blittable Cambio de comportamiento
NativeAOT usa el prefijo lib para las salidas de biblioteca nativa en Unix Cambio de comportamiento

Compilador JIT

Title Tipo de cambio
Las conversiones de punto flotante a tipos enteros pequeños se saturan Cambio de comportamiento
Requisitos mínimos de hardware actualizados Cambio de comportamiento

Creación de redes

Title Tipo de cambio
Las métricas de alta cardinalidad de HttpClient usan contadores observables Cambio de comportamiento
Descargas de certificados AIA del lado servidor SslStream deshabilitadas de forma predeterminada Cambio de comportamiento

.NET MAUI

Title Tipo de cambio
Android x86 no se admite Cambio de comportamiento o incompatible binario
La generación de código en móviles cambia de Mono a CoreCLR Origen incompatible/cambio de comportamiento
CoreCLR reemplaza el tiempo de ejecución de Mono para aplicaciones móviles de .NET Incompatibilidad binaria/de código fuente/cambio de comportamiento
Los eventos de seguimiento de CoreCLR reemplazan los eventos de seguimiento Mono Incompatibilidad binaria/de código fuente/cambio de comportamiento
Cambios de comportamiento de informes de fallos en plataformas móviles Cambio de comportamiento
Interfaces de depuración en plataformas móviles que cambian a ICorDebug Incompatibilidad binaria/de código fuente/cambio de comportamiento
Nivel mínimo de API de Android elevado a 24 Cambio de comportamiento
Las API de integración de Mono ya no se admiten en plataformas móviles Incompatibilidad binaria/de código fuente/cambio de comportamiento
Las propiedades de proyecto Mono ya no configuran aplicaciones móviles Origen incompatible/cambio de comportamiento
La configuración del entorno de ejecución Mono ya no sirve para configurar aplicaciones móviles Comportamiento/origen incompatible
UnwindNativeCode no se admite en destinos de Apple Origen incompatible/cambio de comportamiento

SDK y MSBuild

Title Tipo de cambio
los scripts de dnx eluden la selección del SDK de global.json Cambio de comportamiento
Compilación completa omitida al publicar con Native AOT Cambio de comportamiento
destino de inicio mono no establecido para aplicaciones de .NET Framework Cambio de comportamiento
Procesamiento de comandos de la CLI de NativeAOT habilitado de forma predeterminada Cambio de comportamiento
NU1703 advierte para los paquetes que usan recursos de marco MonoAndroid en desuso Fuente incompatible
Directorio de bloqueos de NuGet movido en Linux Cambio de comportamiento
NuGet pack advierte de los identificadores de paquete con caracteres restringidos Cambio de comportamiento
Restaurar no busca en la carpeta de paquetes globales una versión superior Fuente incompatible
La selección del entorno de ejecución del contenedor local del SDK prefiere herramientas nativas de la plataforma Cambio de comportamiento
Los paquetes de motor de plantilla ya no admiten netstandard2.0 Binario/fuente incompatible
La instalación del paquete de plantilla comprueba las firmas de NuGet Cambio de comportamiento
VSTest quita la dependencia de Newtonsoft.Json Binario/fuente incompatible