Compartir a través de


Empaquetado de una aplicación Win32 aislada con MSIX

El empaquetado de una aplicación MSIX o Win32 existente en una aplicación de aislamiento de aplicaciones Win32 se realizará a través de la herramienta de empaquetado MSIX (MPT). Tenga en cuenta que la versión de MPT que admite el aislamiento de aplicaciones Win32 es v1.2023.517.0, disponible en los recursos de versión de este proyecto. La versión de la tienda de MPT está obsoleta para los fines de la característica de aislamiento de aplicaciones Win32. Puede encontrar documentación adicional para MPT aquí.

Puede encontrar la descarga de MPT, así como el generador de perfiles, en la sección de versiones del repositorio de GitHub de aislamiento de aplicaciones Win32.

Importante

Esta característica está en versión preliminar: parte de la información hace referencia al producto de versión preliminar, el cual puede sufrir importantes modificaciones antes de que se publique la versión comercial. Microsoft no proporciona ninguna garantía, expresa o implícita, con respecto a la información proporcionada aquí.

Conversión de un instalador de Win32 existente en una aplicación MSIX

  1. Seleccione "Paquete de aplicación" en el extremo izquierdo y elija dónde se creará el paquete. Este flujo seguirá la opción "Crear paquete en este equipo".

    Nota:

    Esto hará que la aplicación se instale como una aplicación Win32 normal tras finalizar el paso 5.

    Captura de pantalla que muestra la página principal de la herramienta de empaquetado MSIX

  2. Espere a que el campo "Controlador de herramienta de empaquetado MSIX" finalice la comprobación.

    Captura de pantalla que muestra la página Crear nuevo paquete de la herramienta de empaquetado MSIX

  3. Use el botón Examinar para ir al instalador de Win32 y selecciónelo. Deje la preferencia de firma en blanco, ya que tendremos que editar el manifiesto y firmarlo de nuevo.

    Captura de pantalla que muestra la página Seleccionar instalador en la herramienta de empaquetado MSIX

  4. Escriba la información del paquete.

    Captura de pantalla que muestra la página Información del paquete en la herramienta de empaquetado MSIX

  5. Realice la instalación Win32 de forma normal

  6. Si hay puntos de entrada adicionales además del principal, inícielos o examínelos. Si la aplicación tiene opciones para Asociación de tipo de archivo en la configuración o preferencias, desactive en este paso para que MSIX las seleccione.

  7. Repita el mismo proceso si hay servicios en el paquete.

  8. Al hacer clic en Crear, se guardará el paquete como un paquete de plena confianza. Haga clic en el botón "Editor de paquetes" para ir al flujo "Editor de paquetes" desde el menú principal. Dependiendo del tamaño del paquete, este proceso podría tardar varios minutos.

    Captura de pantalla que muestra la página Crear paquete final al crear un paquete en la herramienta de empaquetado MSIX

Conversión de una aplicación MSIX existente para ejecutar aislada

  1. Seleccione la opción de la derecha "Editor de paquetes", vaya al archivo .msix y haga clic en el botón "Abrir paquete".

    Captura de pantalla que muestra la página principal antes de hacer clic en Abrir paquete en la herramienta de empaquetado MSIX

  2. Desplácese hacia abajo hasta la sección "Archivo de manifiesto" y haga clic en "Abrir archivo".

    Captura de pantalla que muestra la página Información del paquete después de hacer clic en Abrir paquete en la herramienta de empaquetado MSIX

    En el manifiesto, es necesario realizar los siguientes cambios.

    Nota:

    Las aplicaciones Win32 aisladas no son compatibles con otros tipos de aplicación dentro del mismo paquete.

    • Agregue xmlns:previewsecurity2="http://schemas.microsoft.com/appx/manifest/preview/windows10/security/2" al elemento <Package> si aún no está ahí.
      • Agregue previewsecurity2 a IgnorableNamespaces al final del elemento <Package>.
    • Agregue xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10" al elemento <Package> si aún no está ahí.
      • Agregue uap10 a IgnorableNamespaces al final del elemento <Package>.
    • En <Dependencies>, cambie TargetDeviceFamily por <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.25357.0" MaxVersionTested="10.0.25357.0" />.

      Nota:

      No todas las características están disponibles en la compilación mínima, consulte las notas de la versión para obtener información más detallada.

    • En <Application> reemplace cualquier punto de entrada/nivel de confianza/comportamiento en tiempo de ejecución por uap10:TrustLevel="appContainer" previewsecurity2:RuntimeBehavior="appSilo".
    • En las extensiones <Application>, quite cualquier EntryPoints=* o Executable=*, ya que se heredan del elemento primario <Application>
    • Agregue desktop7:Scope="user" al elemento de extensión para windows.protocol.

    Nota:

    De forma predeterminada, MPT agregará automáticamente <rescap:Capability name="runFullTrust"> a <Capabilities> porque se trata de una aplicación Win32 empaquetada. Esto debe quitarse a menos que la aplicación tenga otras extensiones de manifiesto que puedan afectar al estado global del usuario, como comServer o FirewallRules, ya que estas requieren la funcionalidad runFullTrust.

    Captura de pantalla que muestra el contenido del archivo de manifiesto de la aplicación.

  3. Es posible que la aplicación necesite funcionalidades adicionales para funcionar correctamente ahora que se ha aislado.

    Estas funcionalidades agregan directamente la funcionalidad a aplicaciones aisladas.

    • isolatedWin32-print - Imprimir documentos
    • isolatedWin32-sysTrayIcon - Mostrar notificaciones de Systray
    • isolatedWin32-shellExtensionContextMenu - Mostrar entradas de menú contextual basadas en COM
    • isolatedWin32-promptForAccess - Solicitar a los usuarios acceso a archivos
    • isolatedWin32-accessToPublisherDirectory - Acceder a directorios que terminan con el identificador del publicador

    Estas funcionalidades permiten un acceso mínimo a bibliotecas, como el entorno de ejecución de MSVC u otros archivos DLL de Windows o terceros para aplicaciones que no admiten la solicitud.

    • isolatedWin32-dotNetBreadcrumbStore
    • isolatedWin32-profilesRootMinimal
    • isolatedWin32-userProfileMinimal
    • isolatedWin32-volumeRootMinimal
  4. Guarde y cierre la ventana del manifiesto. Si hay algún error en el manifiesto, MPT los mostrará. Seleccione Crear/Guardar para generar el archivo .msix. Dependiendo del tamaño del paquete, este proceso podría tardar varios minutos

    • Si hay errores con el manifiesto, se puede encontrar un mensaje de error más procesable en Visor de eventos en Application and Services/Microsoft/Windows/AppxPackagingOM/Microsoft-Windows-AppxPackaging/Operational
  5. Consulte generador de perfiles de funcionalidad de la aplicación para obtener información sobre cómo identificar las funcionalidades que pueden necesitar declararse en el manifiesto del paquete de aplicación.

Información general sobre el aislamiento de aplicaciones Win32

Generador de perfiles de funcionalidad de aplicación

Empaquetado de una aplicación de aislamiento de aplicaciones Win32 con Visual Studio