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
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.
Espere a que el campo "Controlador de herramienta de empaquetado MSIX" finalice la comprobación.
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.
Escriba la información del paquete.
Realice la instalación Win32 de forma normal
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.
Repita el mismo proceso si hay servicios en el paquete.
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.
Conversión de una aplicación MSIX existente para ejecutar aislada
Seleccione la opción de la derecha "Editor de paquetes", vaya al archivo .msix y haga clic en el botón "Abrir paquete".
Desplácese hacia abajo hasta la sección "Archivo de manifiesto" y haga clic en "Abrir archivo".
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
aIgnorableNamespaces
al final del elemento<Package>
.
- Agregue
- Agregue
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
al elemento<Package>
si aún no está ahí.- Agregue
uap10
aIgnorableNamespaces
al final del elemento<Package>
.
- Agregue
- En
<Dependencies>
, cambieTargetDeviceFamily
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 poruap10:TrustLevel="appContainer" previewsecurity2:RuntimeBehavior="appSilo"
. - En las extensiones
<Application>
, quite cualquierEntryPoints=*
oExecutable=*
, ya que se heredan del elemento primario<Application>
- Agregue
desktop7:Scope="user"
al elemento de extensión parawindows.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, comocomServer
oFirewallRules
, ya que estas requieren la funcionalidadrunFullTrust
.- Agregue
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 documentosisolatedWin32-sysTrayIcon
- Mostrar notificaciones de SystrayisolatedWin32-shellExtensionContextMenu
- Mostrar entradas de menú contextual basadas en COMisolatedWin32-promptForAccess
- Solicitar a los usuarios acceso a archivosisolatedWin32-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
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
- Si hay errores con el manifiesto, se puede encontrar un mensaje de error más procesable en Visor de eventos en
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.
Temas relacionados
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