Descripción del instalador

En este artículo se enumeran los aspectos que debe saber antes de convertir el instalador existente en un MSIX. Es posible que no tenga que hacer mucho para preparar la aplicación para el proceso de empaquetado, pero si alguno de los elementos siguientes se aplica a la aplicación, debe abordarla antes del empaquetado.

  • La aplicación tiene un servicio. Se admite la conversión de aplicaciones con servicios, pero es importante tener en cuenta las limitaciones para convertir un servicio. Después de la conversión, necesitará la elevación de administrador para instalar el MSIX que contiene un servicio. Puede convertir una aplicación con servicios a partir de la versión 1.2019.1220.0 de MSIX Packaging Tool, y puede implementar MSIX con servicios a partir de la versión de la primavera de 2020 de Windows 10.

  • El instalador requiere reiniciar. Si el instalador requiere un reinicio,se admite en MSIX Packaging Tool a partir de la versión 1.2019.701.0. Si el instalador devuelve un código de salida poco común para indicar que necesita un reinicio, debe agregarlo a la sección códigos de salida de reinicio de la configuración de MSIX Packaging Tool.

  • La aplicación .NET requiere una versión del .NET Framework anterior a la 4.6.2. Si vas a empaquetar una aplicación .NET, se recomienda que la versión de destino de la aplicación sea .NET Framework 4.6.2 o versiones posteriores. La capacidad de instalar y ejecutar aplicaciones de escritorio empaquetadas se presentó por primera vez en Windows 10, versión 1607 (también denominada “actualización de aniversario”) y esta versión del sistema operativo incluye .NET Framework 4.6.2 de manera predeterminada. Las versiones posteriores del sistema operativo incluyen versiones posteriores de .NET Framework. Para obtener una lista completa de las versiones de .NET que se incluyen en las versiones posteriores de Windows 10, consulta este artículo.

    Se espera que las versiones de destino de .NET Framework anteriores a la 4.6.2 en aplicaciones de escritorio empaquetadas funcionen en la mayoría de los casos. Sin embargo, si la versión de destino es una versión anterior a la 4.6.2, deberás probar por completo la aplicación de escritorio empaquetada antes de distribuirla a los usuarios.

    • 4.0 a 4.6.1: Se espera que las aplicaciones destinadas a estas versiones de .NET Framework se ejecuten sin problemas en la versión 4.6.2 o en versiones posteriores. Por lo tanto, estas aplicaciones deben instalarse y ejecutarse sin cambios en Windows 10, versión 1607 o posterior con la versión de .NET Framework que se incluye con el sistema operativo.

    • 2.0 y 3.5: En nuestras pruebas, las aplicaciones de escritorio empaquetadas destinadas a estas versiones de .NET Framework generalmente funcionan, aunque pueden presentar problemas de rendimiento en algunos escenarios. Para que estas aplicaciones empaquetadas puedan instalarse y ejecutarse, se debe instalar la característica .NET Framework 3.5 en el equipo de destino (esta característica también incluye .NET Framework 2.0 y 3.0). También deberás probar estas aplicaciones minuciosamente después de empaquetarlas.

  • La aplicación requiere un controlador. MSIX no admite controladores.

  • La aplicación escribe en la carpeta AppData o en el registro con la intención de compartir datos con otra aplicación. Después de la conversión, AppData se redirige al almacén de datos locales de la aplicación, que es un almacén privado para cada aplicación.

    Todas las entradas que tu aplicación escribe en el subárbol del registro HKEY_LOCAL_MACHINE se redirigen a un archivo binario aislado y las entradas que tu aplicación escribe en el subárbol del registro HKEY_CURRENT_USER se colocan en una ubicación privada por usuario y por aplicación. Para obtener más información acerca de la redirección de archivos y del registro, consulta Segundo plano del puente de dispositivo de escritorio.

  • La aplicación escribe en el directorio de instalación de la aplicación. Por ejemplo, la aplicación escribe en un archivo de registro que se coloca en el mismo directorio que el archivo .exe. Esto no se admite porque la carpeta está protegida. Se recomienda escribir en otra ubicación, como el almacén de datos de la aplicación local. Hemos agregado una funcionalidad que permite esto en la versión 1809 y posteriores.

  • La aplicación usa el directorio de trabajo actual. En tiempo de ejecución, la aplicación de escritorio empaquetada no obtendrá el mismo directorio de trabajo que especificaste anteriormente en el acceso directo .LNK del escritorio. Debes cambiar tu CWD en tiempo de ejecución si tener el directorio correcto es importante para que tu aplicación funcione correctamente.

  • La aplicación se instala y carga los ensamblados desde la carpeta de Windows en paralelo. Por ejemplo, la aplicación usa bibliotecas en tiempo de ejecución de C VC8 o VC Windows 9 y las vincula dinámicamente desde una carpeta en paralelo, lo que significa que el código usa los archivos DLL comunes de una carpeta compartida, como C:\Windows\WinSxS. Esto no se admite. Deberás vincularlas de forma estática mediante la vinculación a los archivos de biblioteca redistribuibles directamente en el código.

Otras consideraciones

  • Vuelva a empaquetar el instalador en la arquitectura adecuada. Si el instalador está pensado para instalarse en una máquina x86. Asegúrese de volver a empaquetar el instalador en una máquina x86. Esto es aplicable al instalador destinado a máquinas x64.

    Nota

    Si la aplicación necesita escribir en el directorio de instalación o usar el directorio de trabajo actual, también puedes considerar la posibilidad de agregar una corrección en tiempo de ejecución mediante la Plataforma de compatibilidad de paquetes al paquete. Para obtener más información, consulta este artículo.