Solucionar problemas de tempo de execução em um contêiner MSIXTroubleshoot runtime issues in an MSIX container

Neste artigo, examinaremos como você pode solucionar problemas de tempo de execução que ocorrem em um contêiner MSIX.In this article, we will review how you can troubleshoot runtime issues occurring in a MSIX container. Os contêineres MSIX por si só são relativamente simples e diretos.MSIX containers by themselves are relatively simple and straightforward. À medida que mais aplicativos são executados dentro da mesma identidade do pacote com a ajuda de pacotes de modificação, o registro virtual e o sistema de arquivos virtual serão layed na ordem em que os aplicativos são instalados.As more applications are run inside the same package identity with the help of modification packages, the virtual registry and virtual file system will be over-layed in the order in which the applications are installed.

Pode haver casos em que a ordem em que esses aplicativos são instalados pode causar problemas de imprevistos em que as chaves de registro esperadas podem ser substituídas e os arquivos esperados podem ser substituídos.There can be cases where the order in which these applications are installed could cause unforseen issues where the expected registry keys might be overwritten and expected files might be replaced.

Para ajudar a diagnosticar esses problemas, o Invoke-CommandInDesktopPackage é um cmdlet do PowerShell que pode ser usado para executar um aplicativo dentro do contêiner MSIX.To assist in diagnosing such issues, Invoke-CommandInDesktopPackage is a PowerShell cmdlet that can be used to run an application inside the MSIX container. Isso permite que os usuários executem o prompt de comando, o editor do registro, o PowerShell dentro do contêiner MSIX e obtenham uma exibição do sistema de arquivos mesclado e do hive do registro mesclado.This allows for users to run command prompt, registry editor, PowerShell inside the MSIX container and get a view of the merged file system and merged registry hive.

Importante

Invoke-CommandInDesktopPackage exige que o dispositivo esteja no modo de desenvolvedor para os builds do Windows 10 anteriores a 18922.Invoke-CommandInDesktopPackage requires the device to be in Developer mode for Windows 10 builds prior to 18922.

Exibir o sistema de arquivos mescladosView the merged file system

Para exibir o sistema de arquivos conforme observado pelos aplicativos que estão sendo executados dentro do contêiner, use o seguinte comando do PowerShell:To view the file system as observed by the applications that are running inside the container, use the following PowerShell command:

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

O comando acima iniciará uma instância do cmd.exe no contêiner de pacote contoso. AppPackage1_8h66172c634n0 .The above command will launch an instance of cmd.exe in the Contoso.AppPackage1_8h66172c634n0 package container. Como você está executando o prompt de comando de dentro do contêiner, você pode navegar pelo sistema de arquivos e exibir os arquivos mesclados.As you are running the command prompt from inside the container, you can browse through the file system and view the merged files.

Exibir o hive mesclado do registroView the merged registry hive

Para exibir o hive completo do registro de dispositivo, conforme observado pelos aplicativos que estão executando o contêiner Insider, use o seguinte comando do PowerShell:To view the full device registry hive as observed by the applications that are running insider the container, use the following PowerShell command:

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

O comando acima iniciará o editor do registro no contexto do contêiner do pacote contoso. AppPackage1_8h66172c634n0 .The above command will launch registry editor within the context of the Contoso.AppPackage1_8h66172c634n0 package container. Aqui você pode navegar pelo computador local e pelas chaves do registro do usuário atual e identificar possíveis infratores que estão causando o problema.Here you can browse through local machine and current user registry keys and identify possible offender that is causing the issue.

Dica

Use o sinalizador '-PreventBreakaway ' ao usar Invoke-CommandInDesktopPackage se desejar iniciar processos subsequentes no mesmo contêiner.Use '-PreventBreakaway' flag while using Invoke-CommandInDesktopPackage if you would like to launch subsequent processes in the same container. Caso contrário, qualquer inicialização subsequente será interrompida no contêiner.Else, any subsequent launch will break out of the container.

Observação

Nem todos os aplicativos podem ser iniciados dentro do contêiner.Not all applications can be launched within the container. Por exemplo, explorer.exe fará a análise do contêiner.For instance, explorer.exe will breakout of the container.