Solucionar problemas de runtime em um contêiner MSIX

Neste artigo, vamos analisar 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 sobressajustados na ordem em que os aplicativos são instalados.

Pode haver casos em que a ordem na qual esses aplicativos estão instalados pode causar problemas imprevistos 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 obter uma exibição do sistema de arquivos mesclado e do hive de registro mesclado.

Importante

Invoke-CommandInDesktopPackage requer que o dispositivo seja no modo de desenvolvedor para Windows 10 builds anteriores a 18922.

Exibir o sistema de arquivos mesclado

Para exibir o sistema de arquivos conforme observado pelos aplicativos 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 do cmd.exe no contêiner Contoso.AppPackage1_8h66172c634n0 pacote. Ao executar 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 de registro de dispositivo completo, conforme observado pelos aplicativos que estão executando dentro 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 Contoso.AppPackage1_8h66172c634n0 pacote. Aqui, você pode navegar pelo computador local e pelas chaves atuais do registro de usuário e identificar possíveis danos que estão causando o problema.

Dica

Use o sinalizador '-PreventBreakaway' ao usar Invoke-CommandInDesktopPackage se você quiser iniciar processos subsequentes no mesmo contêiner. Caso mais, qualquer lançamento subsequente será liberado do contêiner.

Observação

Nem todos os aplicativos podem ser lançados dentro do contêiner. Por exemplo, explorer.exe será a quebra do contêiner.