Solución de problemas en tiempo de ejecución en un contenedor MSIX

En este artículo, revisaremos cómo puede solucionar problemas en tiempo de ejecución que se producen en un contenedor MSIX. Los contenedores MSIX por sí mismos son relativamente sencillos y sencillos. A medida que se ejecutan más aplicaciones dentro de la misma identidad de paquete con la ayuda de paquetes de modificación, el registro virtual y el sistema de archivos virtual se retrasarán en exceso en el orden en que se instalan las aplicaciones.

Puede haber casos en los que el orden en el que se instalan estas aplicaciones podría provocar problemas imprevistos en los que las claves del Registro esperadas se sobrescriban y se podrían reemplazar los archivos esperados.

Para ayudar a diagnosticar estos problemas, Invoke-CommandInDesktopPackage es un cmdlet de PowerShell que se puede usar para ejecutar una aplicación dentro del contenedor MSIX. Esto permite a los usuarios ejecutar el símbolo del sistema, el editor del Registro, PowerShell dentro del contenedor MSIX y obtener una vista del sistema de archivos combinado y el subárbol del Registro combinado.

Importante

Invoke-CommandInDesktopPackage requiere que el dispositivo esté en modo de desarrollador para Windows 10 compilaciones anteriores a 18922.

Visualización del sistema de archivos combinado

Para ver el sistema de archivos como lo observan las aplicaciones que se ejecutan dentro del contenedor, use el siguiente comando de PowerShell:

Invoke-CommandInDesktopPackage -AppId "AppPackage1" -PackageFamilyName "Contoso.AppPackage1_8h66172c634n0" -Command "cmd.exe" -PreventBreakaway

El comando anterior iniciará una instancia de cmd.exe en el contenedor Contoso.AppPackage1_8h66172c634n0 paquete. Mientras ejecuta el símbolo del sistema desde dentro del contenedor, puede examinar el sistema de archivos y ver los archivos combinados.

Visualización del subárbol del Registro combinado

Para ver el subárbol completo del registro de dispositivos como lo observan las aplicaciones que ejecutan insider en el contenedor, use el siguiente comando de PowerShell:

Invoke-CommandInDesktopPackage -AppId "AppPackage1" -PackageFamilyName "Contoso.AppPackage1_8h66172c634n0" -Command "regedit.exe" -PreventBreakaway

El comando anterior iniciará el editor del Registro en el contexto del Contoso.AppPackage1_8h66172c634n0 contenedor de paquetes. Aquí puede examinar la máquina local y las claves del Registro de usuario actuales e identificar posibles causas del problema.

Sugerencia

Use la marca "-PreventBreakaway" mientras usa Invoke-CommandInDesktopPackage si desea iniciar procesos posteriores en el mismo contenedor. De lo contrario, cualquier inicio posterior se interrumpirá del contenedor.

Nota

No todas las aplicaciones se pueden iniciar dentro del contenedor. Por ejemplo, explorer.exe se interrumpirá el contenedor.