Descripción del instaladorKnow your installer

En este artículo se enumeran las cosas que debe saber antes de convertir el instalador existente en un MSIX.This article lists the things you need to know before you convert your existing installer into an 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 su aplicación, debe solucionarlo antes del empaquetado.You might not have to do much to get your application ready for the packaging process, but if any of the items below applies to your application, you need to address it before packaging.

  • La aplicación tiene un servicio.Your application has a service. Se admite la conversión de aplicaciones con servicios, pero es importante tener en cuenta las limitaciones de la conversión de un servicio.We support converting applications with services, but its important to keep in mind the limitations to converting a service. Después de la conversión, necesitará la elevación de administrador para poder instalar el MSIX que contiene un servicio.After conversion, you will need admin elevation in order to install the MSIX that contains a service. Puede convertir una aplicación con los servicios a partir de la versión 1.2019.1220.0 de la herramienta de empaquetado de MSIX y puede implementar el MSIX con servicios a partir de la versión Spring 2020 de Windows 10.You can convert an application with services beginning in version 1.2019.1220.0 of the MSIX Packaging Tool, and you can deploy the MSIX with services beginning in the spring 2020 release of Windows 10.

  • El instalador requiere un reinicio.Your installer requires a restart. Si el instalador requiere un reinicio, se admite en la herramienta de empaquetado de MSIX a partir de la versión 1.2019.701.0.If your installer requires a restart, this is supported in the MSIX Packaging Tool beginning in version 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 reiniciar códigos de salida de la configuración de la herramienta de empaquetado de MSIX.If your installer returns an uncommon exit code to indicate it needs a restart, you should add it to the restart exit codes section of the MSIX Packaging Tool settings.

  • La aplicación .net requiere una versión de la .NET Framework anterior a la 4.6.2.Your .NET application requires a version of the .NET Framework earlier than 4.6.2. Si va a empaquetar una aplicación .NET, se recomienda que el destino de la aplicación .NET Framework 4.6.2 o posterior.If you are packaging a .NET application, we recommend that your application target .NET Framework 4.6.2 or later. 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 el .NET Framework 4.6.2 de forma predeterminada.The ability to install and run packaged desktop applications was first introduced in Windows 10, version 1607 (also called the Anniversary Update), and this OS version includes the .NET Framework 4.6.2 by default. Las versiones posteriores del sistema operativo incluyen versiones posteriores del .NET Framework.Later OS versions include later versions of the .NET Framework. Para obtener una lista completa de las versiones de .NET que se incluyen en las versiones posteriores de Windows 10, consulte este artículo.For a full list of what versions of .NET are included in later versions of Windows 10, see this article.

    Se espera que las versiones de destino de los .NET Framework anteriores a 4.6.2 en aplicaciones de escritorio empaquetadas funcionen en la mayoría de los casos.Targeting versions of the .NET Framework earlier than 4.6.2 in packaged desktop applications is expected to work in most cases. Sin embargo, si el destino es una versión anterior a la 4.6.2, debe probar por completo la aplicación de escritorio empaquetada antes de distribuirla a los usuarios.However, if you target an earlier version than 4.6.2, you should fully test your packaged desktop application before distributing it to users.

    • 4,0-4.6.1: se espera que las aplicaciones destinadas a estas versiones del .NET Framework se ejecuten sin problemas en 4.6.2 o posterior.4.0 - 4.6.1: Applications that target these versions of the .NET Framework are expected to run without issues on 4.6.2 or later. 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.Therefore, these applications should install and run without changes on Windows 10, version 1607 or later with the version of the .NET Framework that is included with the OS.

    • 2,0 y 3,5: en nuestras pruebas, las aplicaciones de escritorio empaquetadas que tienen como destino estas versiones del .NET Framework funcionan generalmente pero pueden presentar problemas de rendimiento en algunos escenarios.2.0 and 3.5: In our testing, packaged desktop applications that target these versions of the .NET Framework generally work but may exhibit performance issues in some scenarios. Para que estas aplicaciones empaquetadas se instalen y se ejecuten, la característica .NET Framework 3,5 debe estar instalada en el equipo de destino (esta característica también incluye .NET Framework 2,0 y 3,0).In order for these packaged applications to install and run, the .NET Framework 3.5 feature must be installed on the target machine (this feature also includes .NET Framework 2.0 and 3.0). También debe probar estas aplicaciones minuciosamente después de empaquetarlas.You should also test these applications thoroughly after you package them.

  • La aplicación requiere un controlador.Your application requires a driver. MSIX no admite controladores.MSIX does not support drivers.

  • La aplicación escribe en la carpeta appdata o en el registro con la intención de compartir datos con otra aplicación.Your application writes to the AppData folder or to the registry with the intention of sharing data with another app. Después de la conversión, AppData se redirige al almacén de datos de la aplicación local, que es un almacén privado para cada aplicación.After conversion, AppData is redirected to the local app data store, which is a private store for each app.

    Todas las entradas que escribe la aplicación en el subárbol del registro de HKEY_LOCAL_MACHINE se redirigen a un archivo binario aislado y las entradas que la aplicación escribe en el subárbol del registro de HKEY_CURRENT_USER se colocan en una ubicación privada por usuario y por aplicación.All entries that your application writes to the HKEY_LOCAL_MACHINE registry hive are redirected to an isolated binary file and any entries that your application writes to the HKEY_CURRENT_USER registry hive are placed into a private per-user, per-app location. Para obtener más información sobre el redireccionamiento de archivos y del registro, consulte Behind the Scenes of the Desktop Bridge.For more details about file and registry redirection, see Behind the scenes of the Desktop Bridge.

  • La aplicación escribe en el directorio de instalación de la aplicación.Your application writes to the install directory for your app. Por ejemplo, la aplicación escribe en un archivo de registro que se coloca en el mismo directorio que el archivo exe.For example, your application writes to a log file that you put in the same directory as your exe. Esto no se admite porque la carpeta está protegida.This isn't supported because the folder is protected. Se recomienda escribir en otra ubicación, como el almacén de datos de la aplicación local.We recommend writing to another location like the local app data store. Hemos agregado una funcionalidad que permite esto en 1809 y versiones posteriores.We have added a capability that allows this in 1809 and later.

  • La aplicación usa el directorio de trabajo actual.Your application uses the current working directory. En tiempo de ejecución, la aplicación de escritorio empaquetada no obtendrá el mismo directorio de trabajo que especificó anteriormente en el escritorio. Acceso directo de LNK.At runtime, your packaged desktop application won't get the same working directory that you previously specified in your desktop .LNK shortcut. Debe cambiar el CWD en tiempo de ejecución si el directorio correcto es importante para que la aplicación funcione correctamente.You need to change your CWD at runtime if having the correct directory is important for your application to function correctly.

  • La aplicación instala y carga ensamblados desde la carpeta en paralelo de Windows.Your application installs and loads assemblies from the Windows side-by-side folder. Por ejemplo, la aplicación usa las bibliotecas en tiempo de ejecución de C VC8 o VC9 y las vincula dinámicamente 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.For example, your application uses C runtime libraries VC8 or VC9 and is dynamically linking them from Windows side-by-side folder, meaning your code is using the common DLL files from a shared folder, such as C:\Windows\WinSxS. Esto no se admite.This is not supported. Deberás vincularlas de forma estática mediante la vinculación a los archivos de biblioteca redistribuibles directamente en el código.You will need to statically link them by linking to the redistributable library files directly into your code.

    Nota

    Si la aplicación necesita escribir en el directorio de instalación o usar el directorio de trabajo actual, también puede considerar agregar una corrección en tiempo de ejecución mediante el marco de soporte de paquetes al paquete.If your app needs to write to the installation directory or use the current working directory, you can also consider adding a runtime fixup using the Package Support Framework to your package. Para más información, consulte este artículo.For more details, see this article.