Solucionar problemas de runtime em um contêiner MSIX

Neste artigo, examinaremos como você pode solucionar problemas de runtime que ocorrem em um contêiner MSIX. Os contêineres MSIX por si só são relativamente simples e simples. À medida que mais aplicativos são executados dentro da mesma identidade de pacote com a ajuda de pacotes de modificação, o registro virtual e o sistema de arquivos virtuais serão sobrecarregados na ordem em que os aplicativos estão instalados.

Pode haver casos em que a ordem em que esses aplicativos estão instalados pode causar problemas inesperados em que as chaves do Registro esperadas podem ser substituídas e os arquivos esperados podem ser substituídos.

Para ajudar a diagnosticar esses problemas, Invoke-CommandInDesktopPackage é um cmdlet do PowerShell que pode ser usado para executar um aplicativo dentro do contêiner MSIX. 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.

Importante

Invoke-CommandInDesktopPackage requer que o dispositivo esteja no modo desenvolvedor para builds do Windows 10 antes de 18922.

Exibir o sistema de arquivos mesclado

Para exibir o sistema de arquivos conforme observado pelos aplicativos que estão em execução dentro do contêiner, use o seguinte comando do PowerShell:

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

O comando acima iniciará uma instância de cmd.exe no contêiner do pacote Contoso.AppPackage1_8h66172c634n0 . 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.

Exibir o hive do registro mesclado

Para exibir o hive completo do registro de dispositivo, conforme observado pelos aplicativos que executam o insider do contêiner, use o seguinte comando do PowerShell:

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

O comando acima iniciará o editor do Registro dentro do contexto do contêiner do pacote Contoso.AppPackage1_8h66172c634n0 . Aqui você pode navegar pelo computador local e pelas chaves atuais do registro de usuário e identificar o possível infrator que está causando o problema.

Dica

Use o sinalizador '-PreventBreakaway' ao usar Invoke-CommandInDesktopPackage se quiser iniciar processos subsequentes no mesmo contêiner. Caso contrário, qualquer inicialização subsequente sairá do contêiner.

Observação

Nem todos os aplicativos podem ser iniciados dentro do contêiner. Por exemplo, explorer.exe fará a fuga do contêiner.