Descripción del instalador

En este artículo se enumeran las cosas que debes saber antes de convertir el instalador existente a MSIX. Es posible que no tengas que hacer mucho para preparar la aplicación para el proceso de empaquetado, pero si alguno de los siguientes elementos se aplica a la aplicación, tendrás que abordarlo 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ás elevación de administrador para instalar el MSIX que contiene un servicio. Puedes convertir una aplicación con servicios a partir de la versión 1.2019.1220.0 de la herramienta de empaquetado MSIX y puedes implementar MSIX con servicios a partir de la versión de primavera de 2020 de Windows 10.

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

  • 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 - 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 1809 y versiones 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 las bibliotecas en tiempo de ejecución de C VC8 o VC9 y las vincula de forma dinámica desde la carpeta de Windows 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. Tendrás que vincularlos estáticamente mediante la vinculación a los archivos de biblioteca redistribuibles directamente en el código.

Otras consideraciones

  • Vuelve a empaquetar el instalador en la arquitectura adecuada. Si el instalador está pensado para instalarse en una máquina x86. Asegúrate de volver a empaquetar el instalador en una máquina x86. Esto es aplicable al instalador diseñado para 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 más información, consulte este artículo.