Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporcionan instrucciones sobre la implementación de aplicaciones empaquetadas dependientes del marco (consulte ¿Qué es MSIX?) que usan windows App SDK. El tema equivalente para otras opciones de empaquetado dependientes del marco es guía de implementación de Windows App SDK para aplicaciones dependientes del marco empaquetadas con ubicación externa o sin empaquetar.
Overview
De forma predeterminada, al crear un proyecto mediante una de las plantillas de WinUI 3 de en Visual Studio, el proyecto está configurado para compilar la aplicación en un paquete MSIX mediante MSIX de un solo proyecto (consulte Empaquetar la aplicación mediante MSIX de un solo proyecto) o un proyecto de empaquetado de aplicaciones de Windows (consulte Configure su aplicación de escritorio para el empaquetado MSIX en Visual Studio). A continuación, puedes compilar un paquete MSIX para tu aplicación mediante las instrucciones de Empaquetar una aplicación de escritorio o UWP en Visual Studio. Después de compilar un paquete MSIX para tu aplicación, tienes varias opciones para Administrar tu implementación de MSIX.
Para obtener más información sobre los paquetes que puede necesitar la aplicación empaquetada cuando usa windows App SDK, consulte Arquitectura de implementación para Windows App SDK. Entre ellos se incluyen los paquetes Framework, Main y Singleton ; todos firmados y publicados por Microsoft. Hay dos requisitos principales para implementar una aplicación empaquetada:
- Desplegar el paquete de marco del SDK de aplicaciones de Windows.
- Llama a Recurrir a la API de implementación.
Prerequisites
- En el caso de las aplicaciones empaquetadas, la dependencia del paquete de marco VCLibs es un requisito. Para obtener más información, consulta los entornos de ejecución de marcos de C++ para Desktop Bridge en y.
- C#. Se requiere .NET 6 o posterior. Para obtener más información, consulte Descargas de .NET.
Implementación del paquete de marco de Windows App SDK
El paquete del marco del SDK de aplicaciones de Windows contiene los archivos binarios del SDK de aplicaciones de Windows que se usan en tiempo de ejecución y se instala con la aplicación. El marco tiene diferentes requisitos de implementación para distintos canales del SDK de aplicaciones de Windows.
Versión estable
Al instalar una versión estable del paquete NuGet del SDK de aplicaciones de Windows en el equipo de desarrollo y se crea un proyecto con una de las plantillas de proyecto de WinUI 3 proporcionadas, el manifiesto del paquete generado contiene un elemento PackageDependency que especifica una dependencia en el paquete de marco.
Sin embargo, si compila manualmente el paquete de la aplicación mediante un proyecto de empaquetado de aplicaciones de Windows independiente, debe declarar una PackageReference en el Application (package).wapproj archivo, como se indica a continuación:
<ItemGroup>
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.0.1">
<IncludeAssets>build</IncludeAssets>
</PackageReference>
</ItemGroup>
Esa dependencia de paquete garantiza que el paquete framework se instala cuando la aplicación se implementa en otro equipo.
Versión preliminar
Al instalar una versión preliminar del paquete NuGet del SDK de aplicaciones de Windows en el equipo de desarrollo, se implementa una versión preliminar del paquete de marco de Windows App SDK durante el tiempo de compilación como una dependencia de paquete NuGet.
Llamada a la API de implementación
Consulte también Inicialización del SDK de aplicaciones de Windows.
La API de implementación la proporciona el paquete del marco del SDK de aplicaciones de Windows y está disponible en el espacio de nombres Microsoft.Windows.ApplicationModel.WindowsAppRuntime . El modelo de aplicación de Windows no admite la declaración de una dependencia en los paquetes Main y Singleton. Por lo tanto, la API de implementación es necesaria por estos motivos:
- Para implementar el paquete Singleton para características que no están en el paquete framework (por ejemplo, notificaciones push).
- Para implementar el paquete Main, que permite las actualizaciones automáticas del paquete framework desde Microsoft Store.
En el caso de las aplicaciones empaquetadas que no se distribuyen a través de la Tienda, usted, como el desarrollador, es responsable de distribuir el paquete Framework. Se recomienda llamar a la API de implementación para que se entreguen las actualizaciones de mantenimiento críticas. Tenga en cuenta que, para usar características fuera del paquete de Framework (por ejemplo, notificaciones push), se debe implementar el paquete Singleton (esto se puede hacer con la API de implementación o redistribuyendo los paquetes MSIX mediante su propio método de instalación).
Important
En windows App SDK versión 1.0, solo las aplicaciones empaquetadas que son de plena confianza o que tienen la funcionalidad restringida packageManagement tienen el permiso para usar la API de implementación para instalar las dependencias del paquete Main y Singleton. La compatibilidad con aplicaciones empaquetadas de confianza parcial estará disponible en versiones posteriores.
Debes llamar a la API de implementación después de inicializar el proceso de la aplicación, pero antes de que la aplicación use características en tiempo de ejecución de Windows App SDK que usan el paquete Singleton (por ejemplo, notificaciones push). Los métodos principales de la API de implementación son los métodos estáticos GetStatus y Initialize de la clase DeploymentManager.
- El método GetStatus devuelve el estado de implementación actual del entorno de ejecución del SDK de aplicaciones de Windows que se carga actualmente. Use este método para identificar si hay trabajo necesario para instalar paquetes en tiempo de ejecución de Windows App SDK antes de que la aplicación actual pueda usar las características de Windows App SDK.
- El método Initialize comprueba si todos los paquetes necesarios están presentes en una versión mínima necesaria para el entorno de ejecución de Windows App SDK que está cargado actualmente. Si faltan dependencias de paquetes, el método intenta registrar esos paquetes que faltan. A partir de Windows App SDK 1.1, el método Initialize también admite la opción de forzar la implementación de los paquetes en tiempo de ejecución de Windows App SDK. Esto cierra los procesos de los paquetes en tiempo de ejecución main y singleton y, por tanto, interrumpe sus servicios (por ejemplo, las notificaciones push no entregarán notificaciones durante este tiempo). Debe llamar a Initialize solo una vez. No es necesario llamar a Initialize para las aplicaciones implementadas a través de los comandos Iniciar sin depurar e Iniciar depuración en Visual Studio.
Important
El valor predeterminado de la propiedad <WindowsAppSdkDeploymentManagerInitialize> de Visual Studio es true. Por lo tanto, si desea llamar explícitamente a DeploymentManager.Initialize , establezca <WindowsAppSdkDeploymentManagerInitialize>false</WindowsAppSdkDeploymentManagerInitialize> en el archivo de proyecto de Visual Studio.
Aplicación de ejemplo de API de implementación
Para obtener instrucciones adicionales sobre cómo usar los métodos GetStatus e Initialize de la clase DeploymentManager , explore la aplicación de ejemplo disponible.
Solucionar errores de instalación
Si la API de implementación encuentra un error durante la instalación de los paquetes en tiempo de ejecución de Windows App SDK, devuelve un código de error que describe el problema.
Por ejemplo, si la aplicación no es de plena confianza o no tiene la funcionalidad restringida packageManagement , obtendrá un código de error ACCESS_DENIED . Para revisar otros códigos de error que pueden surgir y sus posibles causas, consulte Solución de problemas de empaquetado, implementación y consulta de aplicaciones de Windows.
Si el código de error no proporciona suficiente información, puede encontrar más información de diagnóstico en los registros de eventos detallados (consulte Obtener información de diagnóstico).
Si encuentra errores que no se pueden diagnosticar, registre un problema en el repositorio de GitHub de WindowsAppSDK con el código de error y los registros de eventos para que podamos investigar el problema.