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 innerhalb derselben Paketidentität mit Hilfe von Änderungspaketen ausgeführt werden, wird das virtuelle Registrierungs- und virtuelle Dateisystem in der Reihenfolge überlastet, in der die Anwendungen installiert sind.

Es kann vorkommen, dass die Reihenfolge, in der diese Anwendungen installiert werden, zu problemen führen kann, bei denen die erwarteten Registrierungsschlüssel möglicherweise überschrieben und erwartete Dateien ersetzt werden.

Um solche Probleme zu diagnostizieren, ist Invoke-CommandInDesktopPackage ein PowerShell-Cmdlet , das verwendet werden kann, um eine Anwendung im MSIX-Container auszuführen. Auf diese Weise können Benutzer Eingabeaufforderungen, Registrierungs-Editor, 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 anzuzeigen, wie die Anwendungen 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. Während Sie die Eingabeaufforderung im Container ausführen, können Sie durch das Dateisystem navigieren und die zusammengeführten Dateien anzeigen.

Anzeigen der zusammengeführten Registrierungsstruktur

Verwenden Sie den folgenden PowerShell-Befehl, um die vollständige Geräteregistrierungsstruktur anzuzeigen, die von den Anwendungen beobachtet wird, die den Container ausführen:

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 durch lokale Computer und aktuelle Benutzerregistrierungsschlüssel navigieren und mögliche Täter identifizieren, die das Problem verursachen.

Tipp

Verwenden Sie das Flag "-PreventBreakaway" während der Verwendung von Invoke-CommandInDesktopPackage, wenn Sie nachfolgende Prozesse im gleichen Container starten möchten. Andernfalls wird jeder nachfolgende Start aus dem Container herausgebrochen.

Hinweis

Nicht alle Anwendungen können im Container gestartet werden. Beispielsweise wird explorer.exe aus dem Container ausgebrochen.