Problembehandlung bei Laufzeitproblemen in einem MSIX-Container
In diesem Artikel wird erläutert, wie Sie Laufzeitprobleme beheben können, die in einem MSIX-Container auftreten. MSIX-Container selbst sind relativ einfach und unkompliziert. Wenn mehrere Anwendungen innerhalb derselben Paketidentität mit Hilfe von Änderungspaketen ausgeführt werden, werden die virtuelle Registrierung und das virtuelle Dateisystem in der Reihenfolge überlagert, in der die Anwendungen installiert werden.
Es kann vorkommen, dass die Reihenfolge, in der diese Anwendungen installiert werden, zu unvorhergesehenen Problemen führt, bei denen die erwarteten Registrierungsschlüssel überschrieben und die erwarteten Dateien ersetzt werden.
Zur Unterstützung bei der Diagnose solcher Probleme ist Invoke-CommandInDesktopPackage ein PowerShell-Cmdlet, mit dem eine Anwendung innerhalb des MSIX-Containers ausgeführt werden kann. So können Benutzer die Eingabeaufforderung, den Registrierungs-Editor und die PowerShell innerhalb des MSIX-Containers ausführen und einen Überblick über das zusammengeführte Dateisystem und die zusammengeführte Registrierungsstruktur erhalten.
Wichtig
Invoke-CommandInDesktopPackage erfordert für Windows 10-Builds vor 18922, dass sich das Gerät im Entwicklermodus befindet.
Anzeigen des zusammengeführten Dateisystems
Verwenden Sie den folgenden PowerShell-Befehl, um das Dateisystem so anzuzeigen, wie es von den Anwendungen, die im Container ausgeführt werden, beobachtet wird:
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. Da 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 anzuzeigen, wie sie von den Anwendungen, die im Container ausgeführt werden, beobachtet wird:
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 die Registrierungsschlüssel des lokalen Computers und des aktuellen Benutzers durchsuchen und mögliche Übeltäter identifizieren, die das Problem verursachen.
Tipp
Verwenden Sie das Flag '-PreventBreakaway' bei der Verwendung von Invoke-CommandInDesktopPackage, wenn Sie nachfolgende Prozesse im selben Container starten möchten. Andernfalls wird jeder weitere Start aus dem Container herausbrechen.
Hinweis
Nicht alle Anwendungen können innerhalb des Containers gestartet werden. Zum Beispiel bricht explorer.exe aus dem Container aus.