Compartir a través de


Notas de la versión del canal estable para el SDK de Aplicaciones para Windows 1.1

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:

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.1

La versión más reciente disponible del linaje 1.1.x del canal estable del SDK de Aplicaciones para Windows es la versión 1.1.5. El linaje 1.1.x ofrece todas las características del canal de versión estable (consulte la sección Características disponibles por canal de versión en Canales de versión del SDK de Aplicaciones para Windows).

Versión 1.1.5

Esta es una versión de mantenimiento del SDK de Aplicaciones para Windows que incluye correcciones de errores críticas para la versión 1.1.

Correcciones de errores (1.1.5)

  • Se ha corregido un problema por el que Acrylic no funciona si Mica está habilitado. Para obtener más información, consulte el problema 7200 en GitHub.
  • Se ha corregido un problema por el que las aplicaciones que dependen del instalador WindowsAppRuntime (por ejemplo, aplicaciones no empaquetadas) no se ejecutan en máquinas ARM64 con Windows 10. Para obtener más información, consulte el problema 2564 en GitHub.

Versión 1.1.4

Esta es una versión de mantenimiento del SDK de Aplicaciones para Windows que incluye correcciones de errores críticas para la versión 1.1.

Correcciones de errores (1.1.4)

  • Se ha corregido una regresión de la versión 1.0.x que provocaba que los controles ListView, TreeView y otros controles "List" se bloquearan en el desplazamiento con muchos elementos. Para obtener más información, consulte el problema 7230 en GitHub.
  • Se ha corregido un problema con DispatcherQueue que hacía que no se invocaran devoluciones de llamada en cola.
  • Se ha corregido un problema que causaba el bloqueo de la aplicación al llamar a DeploymentManager.Initialize varias veces en la misma sesión de la aplicación.
  • Se ha corregido un problema por el que las aplicaciones de C# no se compilaban en Visual Studio Arm64. Para obtener más información, consulte el problema 7140 en GitHub.
  • Se ha corregido un bloqueo intermitente en el código de creación de imágenes XAML que se debía a un control de errores incorrecto.
  • Se ha corregido un problema de fuga de memoria al asociar un controlador de eventos en ItemsRepeater con un UserControl primario. Para obtener más información, consulte el problema 6123 en GitHub.
  • Se ha corregido un problema que provocaba un error de compilación en Visual Studio 17.3 cuando se configuraba un proyecto de aplicación para habilitar las actualizaciones automáticas del paquete cuando se había realizado una instalación de prueba (.appinstaller). Para obtener más información, consulte el problema 2773.
  • Se ha corregido un problema que hacía que las aplicaciones empaquetadas distribuidas en la tienda que llaman a Initialize (necesarias, por ejemplo, para Push) lo llamaran repetidamente, porque DeploymentManager::GetStatus devolvía Package Install Needed cuando los paquetes principal y singleton ya estaban instalados. Esto causaba una degradación del rendimiento al iniciar la aplicación.
  • Se ha corregido un problema que producía una excepción en aplicaciones de instancia única cuando el evento de limpieza debía omitirse si no se podía abrir. Para obtener más información, consulte la solicitud de incorporación de cambios en GitHub.

Versión 1.1.3

Esta es una versión de mantenimiento del SDK de Aplicaciones para Windows que incluye correcciones de errores críticas para la versión 1.1.

Correcciones de errores (1.1.3)

  • Se ha corregido un conjunto de problemas relacionados por los que el código XAML causaba un bloqueo al incluir un control ProgressBar, ProgressRing, PipsPager, PersonPicture o Expander en la primera página de la aplicación. Para obtener más información, consulte el problema 7164 en GitHub.
  • Se ha corregido un problema por el que el instalador x64 no instalaba el entorno de ejecución del SDK de Aplicaciones para Windows. Para obtener más información, consulte el problema 2713 en GitHub.
  • Se ha corregido un problema por el que WindowsAppRuntime no se instalaba si había instalada una versión superior del entorno de ejecución. Para obtener más información, consulte la discusión 2708 en GitHub.

Versión 1.1.2

Esta es una versión de mantenimiento del SDK de Aplicaciones para Windows que incluye correcciones de errores críticas para la versión 1.1.

Correcciones de errores (1.1.2)

  • Se ha corregido un problema por el que el código XAML causaba un bloqueo al cerrar una ventana con un cuadro de diálogo abierto. Para obtener más información, consulte el problema 1032 en GitHub.
  • Se ha agregado la etiqueta <auto-generated> a los archivos de C# para evitar advertencias de StyleCop. Para obtener más información, consulte el problema 4526 en GitHub.
  • Se ha corregido un problema que provocaba un error de infracción de acceso y un bloqueo al llamar a MddBootstrapInitialize cuando el paquete de marco coincidente no estaba instalado. Para obtener más información, consulte el problema 2592 en GitHub.
  • Se ha corregido un problema por el que faltaban tres plantillas de elementos de WinUI 3 de C# en Visual Studio. Para obtener más información, consulte el problema 7148 en GitHub.
  • Se ha corregido un problema por el que el instalador de WindowsAppRuntime no funcionaba al ejecutarlo como usuario del sistema. Para obtener más información, consulte el problema 2546 en GitHub.

Versión 1.1.1

Esta es una versión de mantenimiento del SDK de Aplicaciones para Windows que incluye correcciones de errores críticas para la versión 1.1.

Correcciones de errores (1.1.1)

  • Se ha corregido un problema que hacía que las aplicaciones se bloquearan algunas veces durante una operación de arrastrar y colocar. Para obtener más información, consulte el problema 7002 en GitHub.
  • Se ha corregido un problema por el que la barra de título desaparecía al cambiar AppWindowPresenterKind de FullScreen a Default.
  • Se ha corregido un problema por el que las API de arranque, como ApiInformation.IsPropertyPresent y ApiInformation.IsMethodPresent, producían excepciones no controladas en aplicaciones no empaquetadas. Para obtener más información, consulte el problema 2382 en GitHub.
  • Se ha corregido un problema que provocaba el bloqueo de una aplicación al maximizarla con un lápiz.

Características nuevas y actualizadas y problemas conocidos de la versión 1.1

En las secciones siguientes se describen las características nuevas y actualizadas, las limitaciones y los problemas conocidos de la versión 1.1.

Nota

Para los desarrolladores de C#, se requiere como mínimo una de las siguientes versiones del SDK de .NET: 6.0.202, 6.0.104, 5.0.407, 5.0.213. Para actualizar la versión del SDK de .NET, vaya a Descargas de .NET o actualice a la versión más reciente de Visual Studio. Sin la versión necesaria del SDK de .NET, al actualizar el paquete NuGet obtendrá un error parecido a este: "Esta versión de WindowsAppSDK requiere la versión 1.6 o posterior de WinRT.Runtime.dll".

Ciclo de vida y reinicio de las aplicaciones

Ahora las aplicaciones pueden iniciar un reinicio explícito con un estado y argumentos específicos tomados de la API RegisterApplicationRestart actual con el fin de registrarse en el sistema operativo para reiniciarse en escenarios de actualización, bloqueo y reinicio.

Nuevas características:

  • Cualquier aplicación de escritorio empaquetada o no empaquetada puede finalizarse y reiniciarse con un comando y tener acceso a una cadena arbitraria de la línea de comandos para la instancia reiniciada usando la API AppInstance.Restart().
    • Esta es una versión sincrónica y de la API RequestRestartAsync() de UWP que permite reiniciar con argumentos y devuelve AppRestartFailureReason si el reinicio no se lleva a cabo correctamente.
    • Consulte la documentación de la API Restart en GitHub para obtener información de referencia y uso.

WinUI 3

WinUI 3 es el marco de experiencia del usuario (UX) nativo para el SDK de Aplicaciones para Windows. Esta versión incluye nuevas características de WinAppSDK 1.0 y varias mejoras de estabilidad de las versiones preliminares 1.0 y 1.1.

Nuevas características:

Errores corregidos:

  • Se ha corregido un problema al usar Mica por el que la aplicación se bloqueaba cuando se dividía una ventana en dos pantallas iguales. Para obtener más información, consulte el problema 7079 en GitHub.
  • Se ha actualizado el SDK de WebView2 de la versión 1020.46 a la 1185.39 para corregir un problema que provocaba el bloqueo de las aplicaciones de C# con WebView2 en el inicio cuando no estaba instalado el entorno de ejecución de C/C++ (CRT).
  • Se ha corregido un problema por el que algunas esquinas redondeadas mostraban un degradado cuando debían tener un color sólido. Para obtener más información, consulte los problemas 6076 y 6194 en GitHub.
  • Se ha corregido un problema por el que faltaban estilos actualizados en el archivo generic.xaml.
  • Se ha corregido un problema de ciclo de diseño que hacía que una aplicación se bloqueara al desplazarse al final de un control ListView. Para obtener más información, consulte el problema 6218 en GitHub.
  • Se ha corregido un problema por el que los usuarios no podían colocar un elemento cuando estaba habilitada la funcionalidad de arrastrar y colocar. Para obtener más información, consulte el problema 7008 en GitHub.

Limitaciones conocidas:

  • Cuando se usa una barra de título personalizada, los controles del título no cambian de color al cambiar el tema.
  • El código XAML causa un bloqueo cuando un usuario cierra una ventana con un cuadro de diálogo abierto.

Implementación

Nuevas características:

Limitaciones conocidas:

  • La ejecución del instalador de Windows App Runtime (WindowsAppRuntimeInstall.exe) requiere que se habilite la instalación de prueba. Consulte el problema 2469 en GitHub para más información.
  • La creación de un paquete MSIX mediante los menús de proyecto de Visual Studio puede bloquear Visual Studio en algunos escenarios. Este problema se solucionará en la versión 17.3 Preview 2 de Visual Studio y se revisará en la 17.2. Si se produce este problema, puede solucionarlo generando un MSIX desde la línea de comandos, cambiando a un proyecto sin empaquetar o volviendo al SDK de aplicaciones de Windows 1.0.
  • Las aplicaciones independientes empaquetadas con MSIX no se admiten en 1809, lo que provoca un bloqueo de la aplicación al iniciarse.

Elevation

Las aplicaciones ahora pueden ejecutarse con privilegios elevados.

Limitaciones conocidas:

Environment Variable Manager

Environment Variable Manager es una nueva API introducida en el SDK 1.1 de aplicaciones de Windows. Environment Variable Manager permite a los desarrolladores acceder y modificar variables de entorno en el ámbito de proceso, usuario y máquina desde una superficie de API.

Si se usa Environment Variable Manager desde una aplicación empaquetada, se registran todas las operaciones de variables de entorno. Cuando se quita el paquete, se revierten todas las operaciones de variables de entorno.

Nuevas características:

  • Obtenga y establezca variables de entorno en el ámbito de proceso, usuario y máquina.
  • La variable de entorno automática se revierte cuando se quita un paquete que usa el administrador de variables de entorno.
  • Incluye API específicas para PATH y PATHEXT.

Limitaciones conocidas:

  • Solo está disponible en Windows 11.

MRT Core

MRT Core es una versión simplificada del sistema de administración de recursos de Windows moderno, que se distribuye como parte del SDK de aplicaciones para Windows.

Problemas corregidos:

  • En el SDK de .NET 6.0.300, se ha corregido un problema que provocaba que los recursos no se indexaran de forma predeterminada cuando se agrega un archivo de recursos mediante la interfaz de usuario de VS. Si utiliza una versión anterior del SDK de .NET, siga usando la solución alternativa documentada en las notas de la versión 1.0. Consulte el problema 1786 en GitHub para más información.
  • En Visual Studio 2022 17.2, se ha corregido un problema que provocaba que el URI del recurso no se compilara correctamente en aplicaciones WinUI 3 de C++ sin empaquetar. Si usa una versión anterior de Visual Studio, actualícela a la versión 17.2 para recibir esta corrección.

Limitaciones conocidas:

  • En los proyectos de .NET, los archivos de recursos copiados y pegados en la carpeta del proyecto no se indexan con F5 si la aplicación ya se ha compilado. Como solución alternativa, recompile la aplicación. Consulte el problema 1503 en GitHub para más información.

Para más información, consulte Administración de recursos con MRT Core.

Notificaciones

Los desarrolladores de aplicaciones empaquetadas (incluidas las empaquetadas con ubicación externa) y las aplicaciones sin empaquetar ahora pueden enviar notificaciones de Windows.

Nuevas características:

  • Compatibilidad con notificaciones de aplicaciones en aplicaciones empaquetadas y sin empaquetar.
  • Compatibilidad con notificaciones push en aplicaciones empaquetadas y sin empaquetar.

Limitaciones conocidas:

  • No se admite el envío de notificaciones desde una aplicación con privilegios elevados. PushNotificationManager::IsSupported() no realizará una comprobación en modo con privilegios elevados.

Basado en ventanas

Para facilitar el acceso mediante programación a la funcionalidad que se implementa en USER32.dll (consulte Windows y mensajes), esta versión muestra más de esa funcionalidad en la clase AppWindow propiamente dicha.

Nuevas características:

  • Las aplicaciones con ventanas existentes tienen más control sobre cómo se muestra una ventana, mediante una llamada a AppWindow.ShowOnceWithRequestedStartupState, el equivalente de ShowWindow(SW_SHOWDEFAULT).
  • Las aplicaciones pueden mostrar, minimizar o restaurar una ventana al especificar si la ventana se debe activar o no en el momento en que se realiza la llamada.
  • Las aplicaciones ahora pueden determinar las dimensiones específicas del tamaño del área de cliente de su ventana en coordenadas Win32 sin necesidad de calcular el tamaño del área no de cliente para obtener un tamaño de área de cliente específico.
  • Hay otras API WinRT disponibles para permitir la administración de orden z de ventanas basadas en la funcionalidad hWndInsertAfter de SetWindowPos .
  • Las aplicaciones que dibujan barras de título personalizadas con AppWindowTitleBar.ExtendsContentIntoTitleBar pueden establecer una opción PreferredTitleBarHeight. Ahora tiene una opción entre una barra de título de alto estándar o una barra de título alta que proporciona más espacio para el contenido interactivo. Consulte Barra de título en las directrices de diseño de Fluent para obtener consejos sobre cuándo usar una barra de título alta.

Problemas corregidos:

  • Cuando el moderador de pantalla completa se invoca por primera vez, la ventana cabe ahora completamente en toda la pantalla. Consulte el problema 1853 en GitHub para más información.
  • Las ventanas creadas con AppWindow::GetFromWindowId tienen OverlappedPresenter como moderador predeterminado, pero no tienen restricciones en términos de cambios en los estilos de ventana procedentes de otras API. Las ventanas creadas con AppWindow::Create tendrán implementados los límites de protección predeterminados del moderador desde el principio. Consulte el problema 2049 en GitHub para más información.
  • El uso de la API OverlappedPresenter.SetBorderAndTitlebar para ocultar botones de subtítulo y bordes daría lugar a un borde superior de 1 px cuando se maximiza. Este problema se ha resuelto. Consulte el problema 1693 en GitHub para más información.

Limitaciones conocidas:

  • Al usar la API AppWindowTitlebar para personalizar los colores de la barra de título estándar, el icono y el texto están mal alineados en comparación con la barra de título estándar. Para más información, consulte el problema 2459 de GitHub.

  • Al resolver el problema 2049 de GitHub (visto anteriormente), se introdujo el siguiente error: si aplica appWindowPresenter a una instancia de AppWindow que ha recuperado de GetFromWindowId, cambia un estilo de ventana cuyo seguimiento realiza ese moderador mediante una llamada a las API USER32 e intenta revertir al estado anterior de la ventana volviendo a aplicar el moderador predeterminado, el resultado es una ventana que no tiene barra de título. Si depende de cualquier moderador de la aplicación y usa llamadas a USER32 para cambiar los estilos de ventana en el momento en que se aplica un moderador no predeterminado, es posible que tenga que agregar una solución alternativa para garantizar el funcionamiento correcto de la ventana hasta que se repare este error. Puede usar el siguiente fragmento de código como plantilla para solucionar el problema:

    AppWindow m_appWindow;
    OverlappedPresenter m_defaultPresenter;
    
    private void EnterFullScreen_Click(object sender, RoutedEventArgs e)
    {
        // Capture the default presenter.
        m_defaultPresenter = m_appWindow.Presenter as OverlappedPresenter;
    
        // Opt in the default overlapped presenter so it can control various aspects of the AppWindow.
        m_defaultPresenter.IsAlwaysOnTop = m_defaultPresenter.IsAlwaysOnTop;
        m_defaultPresenter.IsResizable = m_defaultPresenter.IsResizable;
        m_defaultPresenter.IsMinimizable = m_defaultPresenter.IsMinimizable;
        m_defaultPresenter.IsMaximizable = m_defaultPresenter.IsMaximizable;
        m_defaultPresenter.SetBorderAndTitleBar(m_defaultPresenter.HasBorder, m_defaultPresenter.HasTitleBar);
    
        m_appWindow.SetPresenter(AppWindowPresenterKind.FullScreen);
    }
    
    private void ExitFullScreen_Click(object sender, RoutedEventArgs e)
    {
        m_appWindow.SetPresenter(AppWindowPresenterKind.Default);
    }
    

C#/WinRT

Ahora se admiten los componentes de Windows Runtime de C#, incluidos los controles personalizados de WinUI. Esto permite a los autores de componentes distribuir componentes en tiempo de ejecución creados en C# a cualquier lenguaje compatible con WinRT (por ejemplo, C++/WinRT). Consulte Tutorial: Creación de un componente de C# con controles WinUI 3 y consumo desde una aplicación C++/WinRT del SDK para aplicaciones de Windows y el ejemplo de GitHub para comenzar.

Otras limitaciones y problemas conocidos

  • Las aplicaciones que hacen referencia a un paquete que depende de WebView2 (como Microsoft.Identity.Client) no se pueden compilar. Esto se debe a archivos binarios en conflicto en tiempo de compilación. Consulte el problema 2492 en GitHub para más información.
  • Al usar dotnet build con un proyecto de biblioteca de clases de C# de WinAppSDK, puede aparecer un error de compilación "No se pudo cargar la tarea Microsoft.Build.Packaging.Pri.Tasks.ExpandPriContent". Para resolver este problema, establezca <EnableMsixTooling>true</EnableMsixTooling> en el archivo del proyecto.
  • Las plantillas predeterminadas de WinAppSDK mencionan MaxVersionTested="10.0.19041.0" cuando debería ser "10.0.22000.0". Para obtener compatibilidad completa con algunas características, especialmente UnlockedDEHs, actualice MaxVersionTested a "10.0.22000.0" en el archivo del proyecto.