Notas de la versión del canal estable para el SDK de Aplicaciones para Windows 1.2
El canal estable proporciona versiones del SDK de aplicaciones de Windows compatibles con el uso de aplicaciones en entornos de producción. Las aplicaciones que usan la versión estable del SDK de aplicaciones de Windows también se pueden publicar en Microsoft Store.
Vínculos importantes:
- Si quiere actualizar una aplicación existente de una versión anterior del SDK de aplicaciones de Windows a una versión más reciente, consulte Actualización de proyectos existentes a la versión más reciente del SDK de aplicaciones de Windows.
Versión del canal estable más reciente:
Descargas para el SDK de Aplicaciones para Windows
Nota:
Las extensiones de Visual Studio (VSIX) del SDK de Aplicaciones para Windows ya no se distribuyen como descarga independiente. Están disponibles en Visual Studio Marketplace dentro de Visual Studio.
Versión 1.2.5 (1.2.230313.1)
Se trata de una versión de mantenimiento del SDK de aplicaciones de Windows que incluye correcciones de errores críticos de la versión 1.2.
- Se ha corregido un problema que hacía que las aplicaciones se bloquearan durante el apagado de Composition.
- Se ha corregido un problema que hacía que las aplicaciones continuaran ejecutando animaciones incluso cuando la pantalla estaba desactivada.
- Se ha corregido un problema que provocaba un error en la entrada táctil y del mouse en WebView2 cuando la entrada del mouse y el teclado se producían simultáneamente. Para más información, consulte el problema 3266 de GitHub.
Versión 1.2.4 (1.2.230217.4)
Se trata de una versión de mantenimiento del SDK de aplicaciones de Windows que incluye correcciones de errores críticos de la versión 1.2.
- Se ha corregido un problema que hacía que las aplicaciones independientes no pudieran establecer la configuración de UAC. Para más información, consulte el problema 3376 de GitHub.
- Se ha corregido un problema que hacía que las notificaciones push devolvieran una hora de expiración inexacta con
PushNotificationChannel::ExpirationTime
. Para más información, consulte el problema 3300 de GitHub. - Se ha corregido un problema que hacía que los números negativos se consideraran "no válidos" al pasar un valor doble como parámetro a una función x:Bind.
- Varias correcciones para actualizar VSIX de WinUI. Estas actualizaciones incluían la simplificación de la plantilla de proyecto dipAwareness en app.manifest, la eliminación de las plantillas para UWP, la actualización de archivos de recursos localizados, la adición del identificador de teléfono para desbloquear el envío de Store y la eliminación del aviso de copyright y la licencia. Para más información, consulte los problemas 5659, 3205, 3323, 3322 y 3143 de GitHub.
Versión 1.2.3 (1.2.230118.102)
Se trata de una versión de mantenimiento del SDK de aplicaciones de Windows que incluye correcciones de errores críticos de la versión 1.2.
- Se ha corregido un problema que hacía que las aplicaciones WinUI 3 se bloquearan cuando se cerraban varias ventanas.
- Se ha corregido un problema que provocaba un bloqueo al cerrar la aplicación cuando se llamaba a dos o más referencias a la interfaz ThreadPoolTimer. Para más información, consulte los problemas 7260 y 7239 de GitHub.
- Se ha corregido un problema que hacía que todas las aplicaciones MSIX de un solo proyecto se ejecutaran como de plena confianza. Para más información, consulte el problema 7766 de GitHub.
Versión 1.2.2 (1.2.221209.1)
Se trata de una versión de mantenimiento del SDK de aplicaciones de Windows que incluye correcciones de errores críticos de la versión 1.2.
- Se ha corregido un problema que hacía que los paquetes de instalación previa y de Store (por ejemplo, del instalador, NuGet y el programa previo) no se instalaran si el otro ya estaba instalado. Para más información, consulte el problema 3168 de GitHub.
- Se ha corregido un problema que provocaba la falta de efectos de elasticidad y curvas de animación al desplazarse con un panel táctil. Para más información, consulte el problema 7874 de GitHub.
- Se ha corregido un problema en ListView que provocaba pérdidas de memoria.
- Se ha corregido un problema que hacía que la plantilla Button no respetase la propiedad Foreground después de situar el puntero del mouse. Para más información, consulte el problema 7208 de GitHub.
- Se ha corregido un problema que provocaba una excepción innecesaria cuando no había ningún objeto MediaPlaybackItem en un objeto MediaElement.
- Se ha corregido un problema que hacía que apareciera un marco blanco en MediaPlayerElement en las transiciones de contenido.
- Se han corregido problemas adicionales que hacían que App.UnhandledException no detectara excepciones de otros subprocesos. Para más información, consulte los problemas 1259 y 5221 de GitHub.
Versión 1.2.1 (1.2.221116.1)
Se trata de una versión de mantenimiento del SDK de aplicaciones de Windows que incluye una corrección de errores críticos de la versión 1.2.
Se ha corregido un problema que provocaba un bloqueo al iniciarse en aplicaciones WinUI 3 de C++ al agregar un control WebView2 o TextBox. Para obtener más información, consulte los problemas 7911 y 3117 de GitHub.
características nuevas y actualizadas y problemas conocidos de la versión 1.2
En las secciones siguientes se describen las características nuevas y actualizadas y los problemas conocidos de 1.2.
Nota:
Visual Studio 2019 y .NET 5 ya no se admiten para la creación de aplicaciones de C# (consulte El SDK de aplicaciones de Windows 1.2 se ha pasado a WinRT 2.0 en C#). Necesitará Visual Studio 2022 y una de las siguientes versiones del SDK de .NET: 6.0.401 (o posterior), 6.0.304, 6.0.109. Cuando se lance, WinAppSDK 1.2 también admitirá .NET 7.
Para actualizar la versión del SDK de .NET, instale la versión más reciente de Visual Studio 2022 o vaya a Descargas de .NET. Al actualizar el paquete NuGet sin la versión necesaria del SDK de .NET, verá un error parecido a este: "Esta versión de WindowsAppSDK requiere .NET 6+ y la versión 2.0 o posterior de WinRT.Runtime.dll". Para actualizar el proyecto de .NET 5.0 a .NET 6.0, abra el archivo de proyecto y cambie "TargetFramework" a net6.0
y "Target OS version" al valor que corresponda (por ejemplo, net6.0-windows10.0.19041.0
).
Widgets de terceros en Windows
El panel de widgets se introdujo por primera vez en Windows 11 y estaba limitado a mostrar los widgets integrados. Los widgets son pequeños contenedores de interfaz de usuario que muestran texto y gráficos en el panel de widgets, y están asociados a una aplicación instalada en el dispositivo. Con el SDK de Aplicaciones para Windows, como desarrollador de terceros, ahora puede crear widgets para aplicaciones Win32 empaquetadas y probarlos localmente en el panel de widgets de Windows 11.
Para obtener más información sobre los widgets, consulte Introducción a los widgets.
Para empezar a desarrollar widgets para una aplicación, consulte la documentación sobre desarrollo para proveedores de widgets y los Aspectos básicos del diseño de widgets para conocer los requisitos previos y obtener instrucciones y procedimientos recomendados.
Los requisitos previos para esta versión son los siguientes:
- Modo de desarrollador habilitado en la máquina de desarrollo.
- La máquina de desarrollo debe ejecutar una versión de Windows del Canal de desarrolladores de Windows Insider Preview (WIP) que sea igual o posterior a la versión 25217, con la versión 521.20060.1205.0 o posterior del panel de widgets.
Limitaciones conocidas del desarrollo de widgets:
- Los widgets de terceros solo se pueden probar localmente en dispositivos inscritos en WIP para esta versión preliminar.
- Solo se pueden crear widgets para aplicaciones Win32 empaquetadas. Está previsto admitir widgets para aplicaciones web progresivas en Microsoft Edge 108.
DisplayInformation
Ahora las aplicaciones de escritorio de Windows pueden admitir Alto rango dinámico (HDR) y Administración automática de colores (ACM) a través de la clase DisplayInformation del SDK de Aplicaciones para Windows. La clase DisplayInformation permite supervisar la información relacionada con la pantalla para la vista de una aplicación. Esto incluye eventos para permitir que los clientes supervisen los cambios en la vista de la aplicación que afectan a las pantallas en las que reside la vista, así como los cambios en las pantallas que pueden afectar a la vista de la aplicación.
WinUI 3
Las aplicaciones de WinUI 3 pueden reproducir audio y vídeo con los controles de reproducción multimedia MediaPlayerElement y MediaTransportControls. Para obtener más información sobre cómo y cuándo usar controles multimedia, consulte Instancias de Media Player.
WinUI 3 se ha actualizado con los controles, estilos y acciones más recientes de WinUI 2.8. Estas actualizaciones incluyen la adición del control InfoBadge, mejoras de accesibilidad y del modo de contraste alto, así como correcciones de errores en los controles. Para obtener más información, consulte las notas de la versión de WinUI 2.7 y WinUI 2.8.
Problemas corregidos:
- Ya se admite el material de fondo Acrylic con DesktopAcrylicController en aplicaciones de Windows 10. Para obtener más información, consulte el problema 7112 en GitHub.
- Se han corregido varios problemas que provocaban un error en el enrutamiento de App.UnhandledException. Para obtener más información, consulte el problema 5221 en GitHub. Con respecto a los problemas restantes, se han documentado soluciones alternativas en los siguientes problemas de GitHub y se resolverán en una futura versión 1.2:
- Se ha corregido un problema que hacía que los estilos de ListView retrocedieran y cambiaran a partir de WinAppSDK 1.1. Para obtener más información, consulte el problema 7666 en GitHub.
- Se ha corregido un problema por el que aparecía el color de fondo alternativo Mica incorrecto cuando la aplicación estaba inactiva. Para obtener más información, consulte el problema 7801 en GitHub.
Limitaciones conocidas:
- Al crear un nuevo proyecto de WinUI 3 con Visual Studio 2022 17.4.0, hará referencia a una versión preliminar del SDK de Aplicaciones para Windows. Use el Administrador de paquetes NuGet para actualizar la referencia a esta versión.
- Se produce un error al establecer MediaPlayerElement.Source en el URI relativo (ms-appx/ms-resource) en aplicaciones no empaquetadas. La solución alternativa recomendada es convertir el URI relativo ms-appx:/// en un URI de tipo file:/// totalmente resuelto.
Recorte de aplicaciones desarrolladas con .NET
Los desarrolladores de .NET ahora pueden publicar aplicaciones de WinAppSDK recortadas. Con CsWinRT 2.0, las proyecciones de C#/WinRT distribuidas en WinAppSDK ahora se pueden recortar. La publicación de una aplicación recortada puede reducir la superficie de disco de la aplicación al quitar cualquier código sin usar de los archivos binarios recortables. Las aplicaciones también pueden experimentar una mejora del rendimiento en el inicio. Con una aplicación Hola mundo básica, hemos visto una mejora en la superficie de disco de aproximadamente el 80 % y una mejora del rendimiento en el inicio de aproximadamente el 7 % al publicarla recortada. Con la galería de WinUI, hemos visto una mejora aproximada del 45 % en la superficie de disco.
Para obtener más información sobre cómo habilitar el recorte, las limitaciones de recorte (como la reflexión con tipos recortables) y las advertencias de recorte, consulte Recorte de implementaciones autocontenidas y ejecutables. Los desarrolladores deben probar exhaustivamente las aplicaciones después de recortarlas para asegurarse de que todo funciona según lo previsto. Para obtener más información, consulte el problema 2478 en GitHub.
Compatibilidad con Visual Studio Arm64
Ya en Project Reunion (ahora WinAppSDK) 0.5, las aplicaciones desarrolladas con WinAppSDK podían ejecutarse en Arm64. A partir de Visual Studio 17.3 Preview 2, se pueden desarrollar aplicaciones nativas con WinAppSDK en dispositivos Arm64.
Para empezar a desarrollar aplicaciones en un dispositivo Arm64, consulte Windows en Arm y Visual Studio Arm64.
Notificaciones
Se ha introducido AppNotificationBuilder como alternativa a la carga XML para crear y definir notificaciones de aplicación.
Para obtener información de uso, consulte la especificación AppNotificationBuilder en GitHub.
Consulte también Inicio rápido: Notificaciones de aplicación en el SDK de Aplicaciones para Windows para ver un ejemplo de cómo crear una aplicación de escritorio de Windows que envía y recibe notificaciones de una aplicación local.
Cambio importante:
En el caso de las notificaciones push, al realizar una llamada de solicitud de canal, las aplicaciones deberán usar el identificador de objeto de Azure en lugar del identificador de aplicación de Azure. Consulte Inicio rápido: Notificaciones push en el SDK de Aplicaciones para Windows para obtener más información sobre cómo buscar el identificador de objeto de Azure.
Problema corregido:
PushNotificationManager.IsSupported comprobará si la aplicación está en modo elevado. Devolverá false
si la aplicación está en modo elevado.
Limitaciones conocidas (notificaciones):
- En AppNotificationScenario,
Urgent
se admite solamente a partir de la compilación 19041 de Windows. Puede usar AppNotificationBuilder.IsUrgentScenarioSupported para comprobar si la característica está disponible en tiempo de ejecución. - En AppNotificationButton,
hint-toolTip
yhint-buttonStyle
se admiten solamente a partir de la compilación 19041. Puede usar IsButtonStyleSupported e IsToolTipSupported para comprobar si la característica está disponible en tiempo de ejecución. - En MediaPlayerElement, cuando se usa en el marcado XAML para una aplicación sin empaquetar, la propiedad Source no se puede establecer con un URI ms-appx o ms-resource. Como alternativa, establezca el origen con un URI de archivo o en el código.
Basado en ventanas
La personalización completa de la barra de título ya está disponible en Windows 10, a partir de la versión 1809, a través de la clase AppWindowTitleBar. Puede establecer AppWindowTitleBar.ExtendsContentIntoTitleBar en true
para extender el contenido al área de la barra de título y SetDragRectangles para definir regiones de arrastre (además de otras opciones de personalización).
Si ha estado usando la propiedad AppWindowTitleBar.IsCustomizationSupported para comprobar si puede llamar a las API AppWindowTitleBar, ahora devuelve true
en las versiones admitidas de Windows 10 (a partir de la versión 1809) para el SDK de Aplicaciones para Windows.
Limitaciones conocidas (administración de ventanas):
Las personalizaciones básicas de la barra de título no se admiten en Windows 10, a saber: BackgroundColor, InactiveBackgroundColor, ForegroundColor, InactiveForegroundColor y IconShowOptions. Si llama a estas propiedades, se omitirán de forma silenciosa. Todas las demás API AppWindowTitleBar funcionan en Windows 10, a partir de la versión 1809. Para las API de color de los botones de la barra de título (entre otras) y Height, ExtendsContentIntoTitleBar debe establecerse en true
. De lo contrario, también se omitirán de forma silenciosa.
Control de acceso
Se ha introducido security.accesscontrol.h con la función GetSecurityDescriptorForAppContainerNames para facilitar y simplificar el uso compartido de objetos con nombre entre los procesos empaquetados y las API generales de Win32. Este método toma una lista de nombres de familia de paquete (PFN) y máscaras de acceso, y devuelve un descriptor de seguridad. Para obtener más información, consulte la especificación GetSecurityDescriptorForAppContainerNames en GitHub.
Otros problemas conocidos y limitaciones
Importante
Al hacer referencia a WinAppSDK 1.2 en un proyecto, es posible que vea un error parecido a este: "Se detectó la degradación del paquete: Microsoft.Windows.SDK.BuildTools de 10.0.22621.1 a 10.0.22000.194"., que se debe a referencias al paquete incompatibles en el proyecto de aplicación y el paquete WinAppSDK. Para resolverlo, puede actualizar la referencia del proyecto a una versión más reciente y compatible de Microsoft.Windows.SDK.BuildTools.
- Las pruebas unitarias pueden producir un error
REGDB_E_CLASSNOTREG
en el panel de salida Pruebas de Visual Studio. Como solución alternativa, agregue<WindowsAppContainer>true</WindowsAppContainer>
al archivo del proyecto. - No se admite PublishSingleFile de .NET.
- Los valores predeterminados de inicializador automático Bootstrapper y Undocked RegFree WinRT ahora solo se establecen para proyectos que generan un archivo ejecutable (OutputType=Exe o WinExe). Esto evita que se agreguen inicializadores automáticos en archivos DLL de biblioteca de clases y otros no ejecutables de forma predeterminada.
- Si necesita un inicializador automático en un archivo no ejecutable (por ejemplo, un archivo DLL de prueba cargado por un ejecutable genérico que no inicialice el programa previo) puede habilitar explícitamente un inicializador automático en el proyecto a través de
<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>
o<WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>
.
- Si necesita un inicializador automático en un archivo no ejecutable (por ejemplo, un archivo DLL de prueba cargado por un ejecutable genérico que no inicialice el programa previo) puede habilitar explícitamente un inicializador automático en el proyecto a través de
- Microsoft.WindowsAppRuntime.Release.Net.dll es siempre un archivo binario Arm64 y no funciona para aplicaciones x86 y x64. Cuando llame explícitamente a la API de arranque, no use el ensamblado Microsoft.WindowsAppRuntime.Release.Net.dll. Como solución alternativa, puede incluir constantes de versión en este archivo de código fuente que se distribuye con el paquete NuGet: “..\include\WindowsAppSDK-VersionInfo.cs”, o bien utilice el inicializador automático.
Temas relacionados
- Notas de la versión del canal de versión preliminar más reciente para el SDK de Aplicaciones para Windows
- Notas de la versión del canal experimental más reciente para el SDK de Aplicaciones para Windows
- Instalación de herramientas para el SDK de Aplicaciones para Windows
- Creación del primer proyecto de WinUI 3 (SDK de Aplicaciones para Windows)
- Uso del SDK de Aplicaciones para Windows en un proyecto existente
- Descripción general de la implementación