MSIX 컨테이너의 런타임 문제 해결Troubleshoot runtime issues in an MSIX container

이 문서에서는 MSIX 컨테이너에서 발생 하는 런타임 문제를 해결 하는 방법을 검토 합니다.In this article, we will review how you can troubleshoot runtime issues occurring in a MSIX container. MSIX 컨테이너 자체는 비교적 간단 하 고 간단 합니다.MSIX containers by themselves are relatively simple and straightforward. 수정 패키지를 사용 하 여 동일한 패키지 id 내에서 더 많은 응용 프로그램을 실행 하는 경우 가상 레지스트리 및 가상 파일 시스템은 응용 프로그램이 설치 되는 순서 대로 레이아웃 되도록 됩니다.As more applications are run inside the same package identity with the help of modification packages, the virtual registry and virtual file system will be over-layed in the order in which the applications are installed.

이러한 응용 프로그램이 설치 되는 순서에 따라 예상 되는 레지스트리 키를 덮어쓰거나 예상 파일이 대체 될 수 있는 문제가 발생 하지 않을 수 있습니다.There can be cases where the order in which these applications are installed could cause unforseen issues where the expected registry keys might be overwritten and expected files might be replaced.

이러한 문제를 진단 하는 데 도움이 되도록 CommandInDesktopPackage 는 msix 컨테이너 내에서 응용 프로그램을 실행 하는 데 사용할 수 있는 PowerShell cmdlet입니다.To assist in diagnosing such issues, Invoke-CommandInDesktopPackage is a PowerShell cmdlet that can be used to run an application inside the MSIX container. 이를 통해 사용자는 MSIX 컨테이너 내에서 명령 프롬프트, 레지스트리 편집기, PowerShell을 실행 하 고 병합 된 파일 시스템 및 병합 된 레지스트리 하이브 보기를 가져올 수 있습니다.This allows for users to run command prompt, registry editor, PowerShell inside the MSIX container and get a view of the merged file system and merged registry hive.

중요

CommandInDesktopPackage를 사용 하려면 18922 이전 버전의 Windows 10 빌드에 대해 장치가 개발자 모드 여야 합니다.Invoke-CommandInDesktopPackage requires the device to be in Developer mode for Windows 10 builds prior to 18922.

병합 된 파일 시스템 보기View the merged file system

컨테이너 내에서 실행 되는 응용 프로그램에 의해 관찰 되는 파일 시스템을 보려면 다음 PowerShell 명령을 사용 합니다.To view the file system as observed by the applications that are running inside the container, use the following PowerShell command:

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

위의 명령은 AppPackage1_8h66172c634n0 패키지 컨테이너에서 cmd.exe의 인스턴스를 시작 합니다.The above command will launch an instance of cmd.exe in the Contoso.AppPackage1_8h66172c634n0 package container. 컨테이너 내부에서 명령 프롬프트를 실행 하는 동안 파일 시스템을 탐색 하 여 병합 된 파일을 볼 수 있습니다.As you are running the command prompt from inside the container, you can browse through the file system and view the merged files.

병합 된 레지스트리 하이브 보기View the merged registry hive

컨테이너를 실행 하는 응용 프로그램에서 관찰 한 전체 장치 레지스트리 하이브를 보려면 다음 PowerShell 명령을 사용 합니다.To view the full device registry hive as observed by the applications that are running insider the container, use the following PowerShell command:

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

위의 명령은 Contoso. AppPackage1_8h66172c634n0 패키지 컨테이너의 컨텍스트 내에서 레지스트리 편집기를 시작 합니다.The above command will launch registry editor within the context of the Contoso.AppPackage1_8h66172c634n0 package container. 여기에서 로컬 컴퓨터 및 현재 사용자 레지스트리 키를 검색 하 고 문제를 일으킨 가능성을 식별할 수 있습니다.Here you can browse through local machine and current user registry keys and identify possible offender that is causing the issue.

동일한 컨테이너에서 후속 프로세스를 시작 하려면 CommandInDesktopPackage를 사용 하는 동안 '-PreventBreakaway ' 플래그를 사용 합니다.Use '-PreventBreakaway' flag while using Invoke-CommandInDesktopPackage if you would like to launch subsequent processes in the same container. 그 외의 모든 후속 시작은 컨테이너에서 중단 됩니다.Else, any subsequent launch will break out of the container.

참고

컨테이너 내에서 모든 응용 프로그램을 시작할 수 있는 것은 아닙니다.Not all applications can be launched within the container. 예를 들어 explorer.exe는 컨테이너를 분리 합니다.For instance, explorer.exe will breakout of the container.