Behandeln von Laufzeitproblemen in einem MSIX-Container

In diesem Artikel erfahren Sie, wie Sie Laufzeitprobleme beheben können, die in einem MSIX-Container auftreten. MSIX-Container sind selbst relativ einfach und unkompliziert. Da mehr Anwendungen mithilfe von Änderungspaketen innerhalb derselben Paketidentität ausgeführt werden, werden die virtuelle Registrierung und das virtuelle Dateisystem in der Reihenfolge übergeordnet, in der die Anwendungen installiert sind.

Es kann Fälle geben, in denen die Reihenfolge, in der diese Anwendungen installiert werden, zu unvorhersehbaren Problemen führen kann, in denen die erwarteten Registrierungsschlüssel überschrieben und erwartete Dateien ersetzt werden können.

Zur Unterstützung bei der Diagnose solcher Probleme ist Invoke-CommandInDesktopPackage ein PowerShell-Cmdlet, das zum Ausführen einer Anwendung im MSIX-Container verwendet werden kann. Dadurch können Benutzer Eingabeaufforderung, Registrierungs-Editor und PowerShell im MSIX-Container ausführen und eine Ansicht des zusammengeführten Dateisystems und der zusammengeführten Registrierungsstruktur erhalten.

Wichtig

Invoke-CommandInDesktopPackage erfordert, dass sich das Gerät im Entwicklermodus für Windows 10 builds vor 18922 befindet.

Anzeigen des zusammengeführten Dateisystems

Verwenden Sie den folgenden PowerShell-Befehl, um das Dateisystem so zu sehen, wie es von den Anwendungen beobachtet wird, die im Container ausgeführt werden:

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

Der obige Befehl startet eine Instanz von cmd.exe im Contoso.AppPackage1_8h66172c634n0 Paketcontainer. Wenn Sie die Eingabeaufforderung innerhalb des Containers ausführen, können Sie das Dateisystem durchsuchen und die zusammengeführten Dateien anzeigen.

Anzeigen der zusammengeführten Registrierungsstruktur

Verwenden Sie den folgenden PowerShell-Befehl, um die vollständige Geräteregistrierungsstruktur wie von den Anwendungen zu sehen, die im Container ausgeführt werden:

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

Der obige Befehl startet den Registrierungs-Editor im Kontext des Contoso.AppPackage1_8h66172c634n0 Paketcontainers. Hier können Sie den lokalen Computer und die aktuellen Benutzerregistrierungsschlüssel durchsuchen und mögliche Ursachen für das Problem identifizieren.

Tipp

Verwenden Sie das Flag "-PreventBreakaway", Invoke-CommandInDesktopPackage, wenn Sie nachfolgende Prozesse im gleichen Container starten möchten. Bei jedem nachfolgenden Start wird der Container jedoch nicht mehr verwendet.

Hinweis

Nicht alle Anwendungen können innerhalb des Containers gestartet werden. Beispielsweise wird explorer.exe Container nicht mehr verwendet.