Risolvere i problemi di runtime in un contenitore MSIX

Questo articolo illustra come risolvere i problemi di runtime che si verificano in un contenitore MSIX. I contenitori MSIX sono di per sé relativamente semplici e semplici. Man mano che vengono eseguite più applicazioni all'interno della stessa identità del pacchetto con l'aiuto di pacchetti di modifica, il registro virtuale e il file system virtuale verranno sovrasistesi nell'ordine in cui vengono installate le applicazioni.

In alcuni casi l'ordine di installazione di queste applicazioni può causare problemi imprevisti in cui le chiavi del Registro di sistema previste potrebbero essere sovrascritte e i file previsti potrebbero essere sostituiti.

Per facilitare la diagnosi di questi problemi, Invoke-CommandInDesktopPackage è un cmdlet di PowerShell che può essere usato per eseguire un'applicazione all'interno del contenitore MSIX. Ciò consente agli utenti di eseguire il prompt dei comandi, l'editor del Registro di sistema, PowerShell all'interno del contenitore MSIX e ottenere una visualizzazione dell'hive file system e del Registro di sistema unito.

Importante

Invoke-CommandInDesktopPackage il dispositivo deve essere in modalità sviluppatore per Windows 10 build precedenti alla 18922.

Visualizzare i dati uniti file system

Per visualizzare il file system come osservato dalle applicazioni in esecuzione all'interno del contenitore, usare il comando di PowerShell seguente:

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

Il comando precedente avvierà un'istanza di cmd.exe nel contenitore Contoso.AppPackage1_8h66172c634n0 pacchetto. Quando si esegue il prompt dei comandi dall'interno del contenitore, è possibile esplorare il file system e visualizzare i file uniti.

Visualizzare l'hive del Registro di sistema unito

Per visualizzare l'hive completo del Registro di sistema dei dispositivi come osservato dalle applicazioni che eseguono insider nel contenitore, usare il comando di PowerShell seguente:

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

Il comando precedente avvierà l'editor del Registro di sistema nel contesto del contenitore Contoso.AppPackage1_8h66172c634n0 pacchetto. Qui è possibile esplorare il computer locale e le chiavi del Registro di sistema dell'utente corrente e identificare il possibile autore del problema.

Suggerimento

Usare il flag '-PreventBreakaway' durante l'Invoke-CommandInDesktopPackage se si desidera avviare i processi successivi nello stesso contenitore. In caso contrario, qualsiasi avvio successivo interromperà il contenitore.

Nota

Non tutte le applicazioni possono essere avviate all'interno del contenitore. Ad esempio, explorer.exe'interruzione del contenitore.