Notas de la versión del canal de versión preliminar para el SDK de Aplicaciones para Windows 1.0
Importante
El canal de versión preliminar no es compatible para el uso en entornos de producción, y las aplicaciones que utilizan las versiones preliminares no se pueden publicar en Microsoft Store.
El canal de versión preliminar incluye versiones del SDK de Aplicaciones para Windows con características del canal de versión preliminar en fases tardías de desarrollo. Las versiones preliminares no incluyen características experimentales y API, pero pueden estar sujetas a cambios importantes antes de la próxima versión estable.
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.
- Para obtener documentación sobre la publicación de versiones preliminares, consulte Instalación de herramientas para canales experimentales y de versión preliminar del SDK de Aplicaciones para Windows.
Versión del canal de versión preliminar más reciente:
Versión del canal estable más reciente:
Versión 1.0, Preview 3 (1.0.0-preview3)
La versión preliminar 3 es la versión más reciente del canal de versión preliminar para la versión 1.0 del SDK de Aplicaciones para Windows. La versión preliminar 3 admite todas las características del canal en versión preliminar.
Descargar extensiones de Visual Studio 1.0, Preview 3 (VSIX)
Nota:
Si ya tiene instaladas extensiones de Visual Studio (VSIX) del SDK de aplicaciones de Windows, desinstálelas antes de instalar una nueva versión. Para obtener instrucciones, consulte Administración de extensiones para Visual Studio.
En la tabla siguiente puede descargar las extensiones de Visual Studio (VSIX) para la versión 1.0, Preview 3. Para ver todas las versiones, consulte Descargas del SDK de Aplicaciones para Windows más reciente. Si aún no lo ha hecho, empiece por configurar el entorno de desarrollo mediante los pasos descritos en Instalación de herramientas para el SDK de Aplicaciones para Windows.
Las extensiones siguientes están adaptadas para el lenguaje de programación y la versión de Visual Studio.
Descargas de la versión 1.0, Preview 3 | Descripción |
---|---|
Extensión de Visual Studio 2019 para C# | Compile aplicaciones de C# con la extensión del SDK de Aplicaciones para Windows para Visual Studio 2019. |
Extensión de Visual Studio 2019 para C++ | Compile aplicaciones de C++ con la extensión del SDK de Aplicaciones para Windows para Visual Studio 2019. |
Extensión de Visual Studio 2022 para C# | Compile aplicaciones de C# con la extensión del SDK de Aplicaciones para Windows para Visual Studio 2022. |
Extensión de Visual Studio 2022 para C++ | Compile aplicaciones de C++ con la extensión del SDK de Aplicaciones para Windows para Visual Studio 2022. |
El instalador .exe y los paquetes MSIX |
Implemente el SDK de Aplicaciones para Windows con la aplicación mediante el instalador .exe y los paquetes MSIX. |
En las secciones siguientes se describen las características nuevas y actualizadas, las limitaciones y los problemas conocidos de la versión 1.0, Preview 3.
WinUI 3 (1.0.0-preview3)
Ahora se admite la implementación de aplicaciones WinUI 3 sin empaquetado MSIX. Consulte Creación del primer proyecto de WinUI 3 (SDK de Aplicaciones para Windows) para configurar la aplicación WinUI 3 para admitir la implementación de aplicaciones sin empaquetar.
Limitaciones importantes:
- Las aplicaciones WinUI 3 sin empaquetar solo se admiten en Windows, versión 1909 y posterior.
- Las aplicaciones WinUI 3 sin empaquetar se admiten en x86 y x64; la compatibilidad con arm64 se agregará en la próxima versión estable.
- Se requiere Single-project MSIX Packaging Tools para Visual Studio 2019 o Visual Studio 2022 para aplicaciones sin empaquetar.
- En una aplicación sin empaquetar, es posible que reciba un mensaje para instalar .NET 3.5; si es así, puede ignorarlo.
- Algunas API no se admiten actualmente en aplicaciones sin empaquetar. Tenemos como objetivo corregir esto en la próxima versión estable. Algunos ejemplos:
- ApplicationData
- StorageFile.GetFileFromApplicationUriAsync
- ApiInformation (no se admite en Windows 10)
- Package.Current
- Los controles ListView, CalendarView y GridView usan los estilos incorrectos; tenemos la intención de corregir esto en la próxima versión estable.
Para obtener más información o para empezar a desarrollar con WinUI 3, consulte:
Otras limitaciones y problemas conocidos:
Las aplicaciones sin empaquetar no se admiten en Windows 10, versión 1809. Tenemos como objetivo corregir esto en la próxima versión del canal estable.
La aplicación MSIX de proyecto único de C# no se compila si las herramientas de UWP de C++ no están instaladas. Si tiene un proyecto MSIX de un solo proyecto de C#, deberá instalar el componente opcional Herramientas de la plataforma universal de Windows de C++ (v14x).
En esta versión se presentan las plantillas de proyecto Aplicación en blanco, empaquetada (WinUI 3 en escritorio) para C# y C++. Estas plantillas le permiten compilar la aplicación en un paquete MSIX sin usar un proyecto de empaquetado independiente (consulte Empaquetado de la aplicación mediante MSIX de un solo proyecto). Estas plantillas tienen algunos problemas conocidos en esta versión:
El elemento de menú Publicar no aparece hasta que reinicia Visual Studio. Al crear una nueva aplicación tanto en Visual Studio 2019 como Visual Studio 2022 mediante la plantilla de proyecto Aplicación en blanco, empaquetada (WinUI 3 en escritorio), el comando para publicar el proyecto no aparece en el menú hasta que cierra Visual Studio y lo vuelve a abrir.
Error al agregar referencias de proyecto de biblioteca estática/dinámica de C++ a aplicaciones de C++ mediante empaquetado MSIX de proyecto único. Visual Studio muestra un error que indica que el proyecto no se puede agregar como referencia porque los tipos de proyecto no son compatibles.
Error al hacer referencia a un control de usuario personalizado en un proyecto de biblioteca de clases. La aplicación se bloqueará con el error de que el sistema no encuentra la ruta de acceso especificada.
Plantilla de C# o C++ para Visual Studio 2019. Al intentar compilar el proyecto, se producirá el error "El proyecto no sabe cómo ejecutar el nombre de proyecto del perfil". Para resolver este problema, instale la extensión Single-project MSIX Packaging Tools.
Plantilla de C# para Visual Studio 2019 y Visual Studio 2022. En Visual Studio al Iniciar depuración o Iniciar sin depuración, si la aplicación no se implementa ni ejecuta (y no hay comentarios de Visual Studio), haga clic en el nodo del proyecto en Explorador de soluciones para seleccionarlo e inténtelo de nuevo.
Plantilla de C# para Visual Studio 2019 y Visual Studio 2022. Se producirá el siguiente error al intentar ejecutar o depurar el proyecto en el equipo de desarrollo: "Es necesario implementar el proyecto antes de que se pueda depurar. Habilite Implementar en el Administrador de configuración". Para resolver este problema, habilite la implementación del proyecto en Administrador de configuración. Para obtener instrucciones detalladas, consulte Creación del primer proyecto de WinUI 3 (SDK de Aplicaciones para Windows).
Plantilla de C++ para Visual Studio 2022, de la versión 17.0 a Preview 4. Se producirá el siguiente error la primera vez que intente ejecutar el proyecto: "Hubo errores de implementación". Para resolver este problema, ejecute o implemente el proyecto una segunda vez. Este problema se solucionará en Visual Studio 2022, versión 17.0, Preview 7.
No se admite la configuración de compilación Cualquier CPU: al agregar el SDK de aplicaciones para Windows a una aplicación o componente de .NET existente que admita Cualquier CPU, debe especificar la arquitectura deseada:
x86
,x64
oarm64
.Los proyectos de C# que usan la versión 1.0, Preview 3 deben usar el siguiente SDK de .NET: SDK de .NET 6 o posterior (consulte Descargar .NET y .NET 5 llegarán al final del soporte técnico el 10 de mayo de 2022).
Una alternativa a DispatcherQueue.TryEnqueue (para reanudar la ejecución en el subproceso de cola del distribuidor) es usar la función auxiliar resume_foreground en la Biblioteca de implementación de Windows (WIL):
- Agregue una referencia al proyecto al paquete NuGet Microsoft.Windows.ImplementationLibrary.
- Agregue
#include <wil/cppwinrt_helpers.h>
apch.h
. - Agregue
#include <winrt/Microsoft.UI.Dispatching.h>
apch.h
. - Ahora
co_await wil::resume_foreground(your_dispatcherqueue);
.
Problema importante que afecta a la versión 1.0, Preview 1 y Preview 2
La versión 1.0, Preview 1 y Preview 2 del SDK de Aplicaciones para Windows incluye un mecanismo para limpiar los cambios de variables de entorno realizados por una aplicación empaquetada cuando se desinstala esa aplicación. Esta característica está en un estado experimental, y la primera versión incluye un error conocido que puede dañar la variable de entorno PATH del sistema.
Preview 1 y Preview 2 dañan cualquier variable de entorno PATH que contenga el carácter de expansión %
. Esto sucede siempre que se desinstala cualquier aplicación empaquetada, independientemente de si esa aplicación utiliza el SDK de Aplicaciones para Windows.
Consulte también el problema de daños en la variable de entorno PATH.
Detalles
La entrada PATH del sistema se almacena en el valor Path de la siguiente clave en el Registro de Windows:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Si inicia el Editor del Registro (regedit.exe
), puede copiar la ruta de acceso anterior y pegarla en la barra de ruta de navegación (inmediatamente debajo de la barra de menús) y presionar Entrar para buscar la tecla.
El valor Path de esa clave debe ser de tipo REG_EXPAND_SZ, pero el error lo cambia a REG_SZ. Y esto hace que la variable de entorno PATH del sistema no se pueda usar si contiene el carácter de expansión de variable %
.
Versiones afectadas
- SDK de Aplicaciones para Windows 1.0, Preview 1 (1.0.0-preview1)
- SDK de Aplicaciones para Windows 1.0, Preview 2 (1.0.0-preview2)
Mitigación
Para que la máquina vuelva a tener un estado correcto, siga estos pasos:
Compruebe si la entrada PATH del Registro está dañada y, si es así, restablézcala ejecutando el script siguiente.
Puede realizar el paso 1 con el siguiente script de Windows PowerShell (PowerShell Core no funcionará). Ejecútelo con privilegios elevados.
# This script must be run from an elevated Windows PowerShell # window (right-click Windows PowerShell in the Start menu, # and select Run as Administrator). # If the PATH in the Registry has been set to REG_SZ, then delete # it, and recreate it as REG_EXPAND_SZ. $EnvPath = 'Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment' $Environment=Get-Item $EnvPath $PathKind = $Environment.GetValueKind('Path') if ($PathKind -ne 'ExpandString') { $Path = $Environment.GetValue('Path') Remove-ItemProperty $EnvPath -Name Path New-ItemProperty $EnvPath -Name Path -PropertyType ExpandString -Value $Path }
Desinstale todas las aplicaciones que utilizan el SDK de Aplicaciones para Windows 1.0, Preview1 o Preview2 (consulte el script siguiente).
Desinstale los paquetes del SDK de Aplicaciones para Windows 1.0, Preview1/Preview2, incluido el paquete que contiene el error (consulte el script siguiente).
Puede realizar los pasos 2 y 3 con el siguiente script de Windows PowerShell (PowerShell Core no funcionará). Ejecútelo con privilegios elevados.
# This script must be run from an elevated Windows PowerShell # window (right-click Windows PowerShell in the Start menu, # and select Run as Administrator). # Remove the Windows App SDK 1.0 Preview1/2, and all apps that use it. $winappsdk = "Microsoft.WindowsAppRuntime.1.0-preview*" Get-AppxPackage | Where-Object { $_.Dependencies -like $winappsdk } | Remove-AppxPackage Get-AppxPackage $winappsdk | Remove-AppxPackage
Corrección en el SDK de Aplicaciones para Windows 1.0, Preview 3
La característica que provoca que la variable de entorno PATH esté dañada se quitará en el próximo SDK de Aplicaciones para Windows 1.0, Preview 3. Es posible que se vuelva a introducir en una fecha posterior, cuando todos los errores se hayan corregido y probado exhaustivamente.
Se recomienda usar la versión 1.0, Preview 3.
Versión 1.0, Preview 2 (1.0.0-preview2)
Importante
La versión 1.0, Preview 1 y Preview 2 contienen un error crítico. Si ya instaló una de estas versiones preliminares, consulte cómo resolver el problema. Se recomienda usar la versión 1.0, Preview 3 en su lugar.
Esta es la versión más reciente del canal de versión preliminar para la versión 1.0. Admite todas las características del canal en versión preliminar.
Las siguientes secciones describen las características nuevas y actualizadas , limitaciones y problemas conocidos para esta versión.
WinUI 3 (1.0.0-preview2)
Nuevas actualizaciones:
- Los controles se han actualizado para reflejar los estilos de Windows más recientes de WinUI 2.6.
- Se admite MSIX de proyecto único.
- El paquete WinUI 3 ahora puede tener como destino la compilación 17763 y posteriores. Consulte el problema 921 para obtener más información.
- Se admite la barra de herramientas en la aplicación. Sin embargo, la barra de herramientas en la aplicación y la compatibilidad existente con Recarga activa/Árbol visual dinámico requiere la próxima versión de Visual Studio 17.0, Preview 5 disponible más adelante en octubre.
Error corregido: El texto de WebView2Runtime ahora está localizado.
Para obtener más información o para empezar a desarrollar con WinUI 3, consulte:
Administración de ventanas (1.0.0-preview2)
Esta versión presenta actualizaciones de la clase AppWindow. En esta versión no se han agregado características nuevas importantes, pero se han quitado los cambios en los nombres de método, las propiedades y algunos valores devueltos. Consulte la documentación y los ejemplos para obtener actualizaciones detalladas. Si ha trabajado con AppWindow en las versiones 1.0 Experimental o 1.0 Preview 1, verá algunos cambios en el código.
Nuevas actualizaciones:
- Se ha quitado la clase AppWindowConfiguration. Las propiedades de esta clase ahora están disponibles en la propia clase AppWindow o en Moderador.
- La mayoría de los valores devueltos
bool
para los métodos de API de WinRT en este espacio se han quitado y ahora sonvoid
, ya que estos métodos siempre se completarían correctamente. - Las llamadas ImportDll de C# ya no son necesarias para GetWindowIdFromWindow y GetWindowFromWindowId. En su lugar, utilice los métodos de encapsulador de .NET disponibles en la clase Microsoft.UI.Win32Interop.
Limitaciones importantes:
- El SDK de aplicaciones para Windows no proporciona actualmente métodos para adjuntar contenido del marco de la interfaz de usuario a una clase AppWindow; está limitado a utilizar los métodos de acceso interoperativo HWND.
- La personalización de la barra de título de la ventana solo funciona en Windows 11. Utilice el método IsCustomizationSupported para comprobar la compatibilidad con características de personalización de la barra de título. Tenemos la intención de hacer esta funcionalidad compatible con versiones anteriores.
Para obtener más información, consulte Administración de ventanas de aplicaciones (SDK de Aplicaciones para Windows).
Entrada (1.0.0-preview2)
Nuevas actualizaciones:
- Se ha mejorado la compatibilidad con la entrada del panel táctil de precisión.
Limitaciones importantes:
- Se han quitado todas las funciones de fábrica estáticas de la clase PointerPoint: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints, y GetIntermediatePointsTransformed.
- El SDK de aplicaciones para Windows no admite la recuperación de objetos PointerPoint con id. de puntero. En su lugar, puede usar la función de miembro de la clase PointerPoint GetTransformedPoint para recuperar una versión transformada de un objeto PointerPoint existente. Para puntos intermedios, puede usar las funciones miembro de PointerEventArgs GetIntermediatePoints y GetTransformedIntermediatePoints. Consulte la documentación para obtener más información.
MRT Core (1.0.0-preview2)
Nuevas actualizaciones:
- Los desarrolladores de aplicaciones ahora pueden hacer que un archivo de imagen o un archivo RESW no se indexe en el archivo PRI en proyectos de .NET. Consulte el problema 980 para obtener más información.
Limitaciones importantes:
- 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, vuelva a compilar la aplicación. Consulte el problema 1503 para obtener más información.
- En los proyectos de .NET, los archivos de recursos existentes que se agregan desde una carpeta externa no se indexan sin la configuración manual de la acción de compilación. Para solucionar este problema, establezca la acción de compilación en Visual Studio: Content para archivos de imagen y PRIResource para archivos RESW. Consulte el problema 1504 para obtener más información.
Implementación de aplicaciones sin empaquetar
Nuevas características:
- El SDK de Aplicaciones para Windows 1.0, Preview 2 presenta un encapsulador de .NET para la API de programa previo (consulte Uso del entorno de ejecución del SDK de Aplicaciones para Windows para aplicaciones empaquetadas con ubicación externa o sin empaquetar). La API de programa previo es un conjunto de funciones nativas de C/C++ que las aplicaciones sin empaquetar deben utilizar para tomar dinámicamente una dependencia del paquete de marcos del SDK de Aplicaciones para Windows en tiempo de ejecución. El encapsulador de .NET proporciona una manera más sencilla de llamar a la API de programa previo desde aplicaciones .NET, incluidas las aplicaciones de Windows Forms y WPF. El encapsulador de .NET para la API de programa previo está disponible en el ensamblado Microsoft.WindowsAppRuntime.Bootstrap.Net.dll, que es local para el proyecto de aplicación. Para más información sobre el contenedor de .NET, consulte Biblioteca de contenedor de .NET.
- Las aplicaciones empaquetadas ahora pueden utilizar la API de implementación para que los paquetes MSIX de Main y Singleton se instalen en la máquina. Los paquetes Main y Singleton forman parte del paquete de marcos que se instala con la aplicación, pero, debido a una limitación con el modelo de aplicación de Windows, las aplicaciones empaquetadas deberán realizar este paso adicional para instalar esos paquetes. Para más información sobre cómo funciona la API de implementación, consulte Guía de implementación del SDK de aplicaciones para Windows para aplicaciones empaquetadas dependientes del marco.
Limitaciones importantes:
- El encapsulador .NET para la API de programa previo solo está diseñado para que lo usen las aplicaciones .NET sin empaquetar para simplificar el acceso al SDK de aplicaciones para Windows.
- Solo las aplicaciones empaquetadas MSIX que son de plena confianza o tienen la funcionalidad restringida packageManagement tienen el permiso para usar la API de implementación para instalar las dependencias del paquete principal y singleton. La compatibilidad con aplicaciones empaquetadas de confianza parcial estará disponible en versiones posteriores.
- Cuando F5 prueba una aplicación x86 que usa el método DeploymentManager.Initialize en un sistema x64, asegúrese de que el marco x64 se instala primero ejecutando WindowsAppRuntimeInstall.exe. De lo contrario, se producirá un error NOT_FOUND debido a que Visual Studio no implementa el marco x64, que normalmente se produce a través de la implementación de Store o la instalación de prueba.
Ciclo de vida de la aplicación
La mayoría de las características del ciclo de vida de la aplicación ya existen en la plataforma UWP y se han incorporado al SDK de aplicaciones para Windows para su uso por tipos de aplicaciones de escritorio, especialmente aplicaciones de consola sin empaquetar, aplicaciones Win32, aplicaciones Windows Forms y aplicaciones WPF. La implementación del SDK de aplicaciones para Windows de estas características no se puede usar en aplicaciones para UWP, ya que hay características equivalentes en la propia plataforma UWP.
Las aplicaciones que no son para UWP también se pueden empaquetar en paquetes MSIX. Aunque estas aplicaciones pueden usar algunas de las características del ciclo de vida de la aplicación del SDK de aplicaciones para Windows, deben usar el enfoque de manifiesto en el que está disponible. Por ejemplo, no pueden usar las API RegisterForXXXActivation del SDK de aplicaciones para Windows y, en su lugar, deben registrarse para la activación enriquecida a través del manifiesto.
Todas las restricciones de las aplicaciones empaquetadas también se aplican a las aplicaciones WinUI 3 que están empaquetadas, y hay consideraciones adicionales, como se describe a continuación.
Consideraciones importantes:
Activación enriquecida: GetActivatedEventArgs
- Aplicaciones sin empaquetar: totalmente utilizables.
- Aplicaciones empaquetadas: utilizables, pero estas aplicaciones también pueden usar la plataforma
GetActivatedEventArgs
. Tenga en cuenta que la plataforma define Windows.ApplicationModel.AppInstance, mientras que el SDK de aplicaciones para Windows define Microsoft.Windows.AppLifecycle.AppInstance. Y, mientras que las aplicaciones para UWP pueden usar las clasesActivatedEventArgs
, comoFileActivatedEventArgs
yLaunchActivatedEventArgs
, las aplicaciones que usan la característica AppLifecycle del SDK de aplicaciones para Windows deben usar las interfaces, no las clases (por ejemplo,IFileActivatedEventArgs
,ILaunchActivatedEventArgs
, etc.). - Aplicaciones WinUi 3: App.OnLaunched de WinUI 3 recibe Microsoft.UI.Xaml.LaunchActivatedEventArgs, mientras que la plataforma
GetActivatedEventArgs
devuelve Windows.ApplicationModel.IActivatedEventArgs, y WindowsAppSDKGetActivatedEventArgs
devuelve un objeto Microsoft.Windows.AppLifecycle.AppActivationArguments que puede representar una plataformaLaunchActivatedEventArgs
. - Para obtener más información, consulte Activación enriquecida con la API del ciclo de vida de la aplicación.
Registro o anulación del registro para la activación enriquecida
- Aplicaciones sin empaquetar: totalmente utilizables.
- Aplicaciones empaquetadas: no utilizables; usan el manifiesto MSIX de la aplicación en su lugar.
- Para obtener más información, consulte Activación enriquecida con la API del ciclo de vida de la aplicación.
Creación de instancias únicas o múltiples
- Aplicaciones sin empaquetar: totalmente utilizables.
- Aplicaciones empaquetadas: totalmente utilizables.
- Aplicaciones WinUI 3: Si una aplicación quiere detectar otras instancias y redirigir una activación, debe hacerlo lo antes posible y antes de inicializar cualquier ventana, etc. Para habilitarlo, la aplicación debe definir DISABLE_XAML_GENERATED_MAIN y escribir un Main (C#) o WinMain (C++) personalizado donde puede realizar la detección y el redireccionamiento.
- RedirectActivationToAsync es una llamada asincrónica y no debe esperar a una llamada asincrónica si la aplicación se ejecuta en un STA. Para Windows Forms y aplicaciones WinUI 3 de C#, puede declarar Main como asincrónico, si es necesario. En el caso de las aplicaciones WinUI 3 de C++ y WPF de C#, no puede declarar Main como asincrónico, por lo que, en su lugar, debe mover la llamada de redireccionamiento a otro subproceso para asegurarse de que no bloquee el STA.
- Para obtener más información, consulte Creación de instancias de aplicaciones con la API del ciclo de vida de la aplicación.
Notificaciones de energía y estado
- Aplicaciones sin empaquetar: totalmente utilizables.
- Aplicaciones empaquetadas: totalmente utilizables.
- Para obtener más información, consulte Administración de energía con la API del ciclo de vida de la aplicación.
Problema conocido:
Las asociaciones de tipo de archivo codifican incorrectamente %1 para que sean %251 al establecer la plantilla de la línea de comandos del controlador Verb, que bloquea las aplicaciones Win32 sin empaquetar. Como una solución alternativa, puede editar manualmente el valor del Registro para que sea %1 en su lugar. Si la ruta de acceso del archivo de destino tiene un espacio, se producirá un error y no habrá ninguna solución alternativa para ese escenario.
Otras limitaciones y problemas conocidos:
La versión 1.0, Preview 1 y Preview 2 contienen un error crítico. Si ya instaló una de estas versiones preliminares, consulte cómo resolver el problema. Se recomienda usar la versión 1.0, Preview 3 en su lugar.
En esta versión se presentan las plantillas Aplicación en blanco, empaquetada (WinUI 3 en escritorio) para proyectos de C# y C++. Estas plantillas le permiten compilar la aplicación en un paquete MSIX sin usar un proyecto de empaquetado independiente. Estas plantillas tienen algunos problemas conocidos en esta versión:
Plantilla de C# para Visual Studio 2019. Al intentar compilar el proyecto, se producirá el error "El proyecto no sabe cómo ejecutar el nombre de proyecto del perfil". Para resolver este problema, instale la extensión Single-project MSIX Packaging Tools.
Plantilla de C# para Visual Studio 2019 y Visual Studio 2022. Se producirá el siguiente error al intentar ejecutar o depurar el proyecto en el equipo de desarrollo: "Es necesario implementar el proyecto antes de que se pueda depurar. Habilite Implementar en el Administrador de configuración". Para resolver este problema, habilite la implementación del proyecto en Administrador de configuración. Para obtener instrucciones detalladas, consulte Creación del primer proyecto de WinUI 3 (SDK de Aplicaciones para Windows).
Plantilla de C++ para Visual Studio 2019 y Visual Studio 2022. En esta versión, estos proyectos están restringidos a llamar al subconjunto de API de Win32 a las que pueden llamar las aplicaciones para UWP. La plantilla Aplicación en blanco, empaquetada con WAP (WinUI 3 en escritorio) no se ve afectada por este problema.
Plantilla de C++ para Visual Studio 2022, de la versión 17.0 a Preview 4. Se producirá el siguiente error la primera vez que intente ejecutar el proyecto: "Hubo errores de implementación". Para resolver este problema, ejecute o implemente el proyecto una segunda vez. Este problema se solucionará en Visual Studio 2022 versión 17.0 versión preliminar 5.
API de notificaciones push (espacio de nombres Microsoft.Windows.PushNotifications) incorrectamente incluida en la versión 1.0, Preview 2. Esta es una característica experimental y, para utilizarla, debe instalar la versión experimental 1.0 en su lugar. Esta característica se quitará de la próxima versión 1.0.
La API de ciclo de vida de la aplicación (espacio de nombres Microsoft.Windows.AppLifecycle) incluye incorrectamente el atributo Experimental en la versión 1.0, Preview 2. El atributo Experimental se quitará de esta API en la próxima versión.
No se admite la configuración de compilación Cualquier CPU: al agregar el SDK de aplicaciones para Windows a una aplicación o componente de .NET existente que admita Cualquier CPU, debe especificar la arquitectura deseada:
x86
,x64
oarm64
.Los proyectos de C# que usan la versión 1.0, Preview 2 deben usar el siguiente SDK de .NET: SDK de .NET 6 o posterior (consulte Descargar .NET y .NET 5 llegarán al final del soporte técnico el 10 de mayo de 2022).
Una alternativa a DispatcherQueue.TryEnqueue (para reanudar la ejecución en el subproceso de cola del distribuidor) es usar la función auxiliar resume_foreground en la Biblioteca de implementación de Windows (WIL):
- Agregue una referencia al proyecto al paquete NuGet Microsoft.Windows.ImplementationLibrary.
- Agregue
#include <wil/cppwinrt_helpers.h>
apch.h
. - Agregue
#include <winrt/Microsoft.UI.Dispatching.h>
apch.h
. - Ahora
co_await wil::resume_foreground(your_dispatcherqueue);
.
Versión 1.0, Preview 1 (1.0.0-preview1)
Importante
La versión 1.0, Preview 1 y Preview 2 contienen un error crítico. Si ya instaló una de estas versiones preliminares, consulte cómo resolver el problema. Se recomienda usar la versión 1.0, Preview 3 en su lugar.
Esta es la primera versión del canal de versión preliminar para la versión 1.0. Admite todas las características del canal en versión preliminar.
Las siguientes secciones describen las características nuevas y actualizadas , limitaciones y problemas conocidos para esta versión.
WinUI 3 (1.0.0-preview1)
Esta versión de WinUI 3 se centra en mejorar la versión 1.0 con correcciones de errores.
- Nuevas características: No hay nuevas características en Preview 1.
- Errores corregidos: Para obtener la lista completa de errores corregidos en esta versión, consulte nuestro repositorio de GitHub.
Para obtener más información o para empezar a desarrollar con WinUI 3, consulte:
Administración de ventanas (1.0.0-preview2)
En esta versión se incluye la API Windowing que se introdujo en Experimental 1 a un estado de versión preliminar. No hay nuevas áreas importantes en esta versión, ya que se centra en la corrección de errores, la estabilidad y los ajustes en la firma de API. A continuación se indican los cambios y adiciones significativos.
Nuevas características:
- DisplayAreaWatcher se ha agregado a las API de Windowing. Esto permite a un desarrollador observar los cambios en la topología de visualización y las clases DisplayArea que actualmente se definen en el sistema.
- AppWindow ahora admite la configuración del icono de ventana a través del método SetIcon, y AppWindowTitleBar ahora admite seleccionar si desea mostrar u ocultar el icono de la ventana junto con el menú del sistema a través de la propiedad IconShowOptions.
Limitaciones importantes:
- Esta versión de AppWindow solo está disponible actualmente para aplicaciones Win32 (tanto empaquetadas como sin empaquetar).
- El SDK de aplicaciones para Windows no proporciona actualmente métodos para adjuntar contenido del marco de la interfaz de usuario a una clase AppWindow; está limitado a utilizar los métodos de acceso interoperativo HWND.
- La personalización de la barra de título de la ventana solo funciona en Windows 11. Utilice el método IsCustomizationSupported para comprobar la compatibilidad con características de personalización de la barra de título. Tenemos la intención de hacer esta funcionalidad compatible con versiones anteriores.
Para obtener más información, consulte Administración de ventanas de aplicaciones (SDK de Aplicaciones para Windows).
Entrada (1.0.0-preview1)
Esta versión aporta algunas características nuevas a la API Input. A continuación se indican los cambios y adiciones significativos.
Nuevas características y actualizaciones:
- PointerPredictor proporciona a las aplicaciones sensibles a la latencia de entrada, como las aplicaciones de entrada manuscrita, la capacidad de predecir ubicaciones de punto de entrada de hasta 15 ms en el futuro para lograr una mejor latencia y una animación suave.
- PenDeviceInterop permite adquirir una referencia a Windows.Devices.Input.PenDevice mediante el método FromPointerPoint.
- InputCursor proporciona una distinción explícita entre los tipos de cursor preestablecidos del sistema y los tipos de cursor personalizados al quitar el tipo "Custom" presente en
CoreCursor
y dividir el objetoCoreCursor
en objetos independientes. - Actualizaciones en las API InputCursor.
- GestureRecognizer se ha quitado de experimental y se ha pasado a Microsoft.UI.Input.
- PointerPoint se ha quitado de experimental y se ha pasado a Microsoft.UI.Input.
- La entrada del mouse, la función táctil y la entrada manuscrita son totalmente compatibles con la funcionalidad de arrastrar y colocar de WinUI 3.
Limitaciones importantes:
- Esta versión de las API Input tiene problemas conocidos con Windows, versión 1809.
- MRT Core aún no es compatible con ningún subtipo de InputCursor.
- El uso directo de la API del SDK de plataforma Windows.UI.Core.CoreDragOperation no funcionará con aplicaciones WinUI 3.
- Las propiedades de la clase PointerPointRawPosition y ContactRectRaw se quitaron porque hacían referencia a valores no previstos, que eran los mismos que los valores normales del sistema operativo. Use Position y ContactRect en su lugar. La predicción del puntero ahora se controla con el objeto de API Microsoft.UI.Input.PointerPredictor.
MRT Core (1.0.0-preview1)
A partir de la versión 1.0, Preview 1, las API de MRT Core se han movido del espacio de nombres Microsoft.ApplicationModel.Resources al espacio de nombres Microsoft.Windows.ApplicationModel.Resources.
Otras limitaciones y problemas conocidos:
La versión 1.0, Preview 1 y Preview 2 contienen un error crítico. Si ya instaló una de estas versiones preliminares, consulte cómo resolver el problema. Se recomienda usar la versión 1.0, Preview 3 en su lugar.
Los proyectos creados mediante la plantilla de proyecto Aplicación en blanco, empaquetada con WAP (WinUI 3 en escritorio) de C++ encuentran el siguiente error de compilación de manera predeterminada:
fatal error C1083: Cannot open include file: 'winrt/microsoft.ui.dispatching.co_await.h': No such file or directory
. Para resolver este problema, quite la siguiente línea de código del archivo pch.h. Este problema se solucionará en la próxima versión.#include <winrt/microsoft.ui.dispatching.co_await.h>
Una alternativa a DispatcherQueue.TryEnqueue (para reanudar la ejecución en el subproceso de cola del distribuidor) es usar la función auxiliar resume_foreground en la Biblioteca de implementación de Windows (WIL):
- Agregue una referencia al proyecto al paquete NuGet Microsoft.Windows.ImplementationLibrary.
- Agregue
#include <wil/cppwinrt_helpers.h>
apch.h
. - Agregue
#include <winrt/Microsoft.UI.Dispatching.h>
apch.h
. - Ahora
co_await wil::resume_foreground(your_dispatcherqueue);
.
No se admite ninguna configuración de compilación de cualquier CPU: el SDK de Aplicaciones para Windows se escribe en código nativo y, por tanto, no admite cualquier configuración de compilación de CPU. Las plantillas WinUI 3 en Visual Studio solo permiten compilaciones específicas de arquitectura. Cuando añada el SDK de Aplicaciones para Windows a una aplicación o componente .NET existente que admita Cualquier CPU, debe especificar la arquitectura deseada:
x86
,x64
oarm64
.Las aplicaciones .NET deben tener como destino la compilación 18362 o posterior: su TFM se debe establecer en
net6.0-windows10.0.18362
o posterior, y<TargetPlatformVersion>
del proyecto de empaquetado debe establecerse en 18362 o posterior. Para más información, consulte el problema conocido en GitHub.Los proyectos de C# que usan la versión 1.0, Preview 1 deben usar el siguiente SDK de .NET: SDK de .NET 6 o posterior (consulte Descargar .NET y .NET 5 llegarán al final del soporte técnico el 10 de mayo de 2022).
Aplicaciones sin empaquetar no compatibles con Windows 10, versión 1809: esto debe resolverse en la próxima versión.
Temas relacionados
- Notas de la versión del canal estable 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