다음을 통해 공유


Visual Studio를 사용하여 Win32 앱 격리 애플리케이션 패키징

이 페이지에서는 Win32 앱 격리를 활용하기 위해 애플리케이션을 패키지하는 데 필요한 모든 것을 다룹니다.

Important

이 기능은 미리 보기 상태입니다. 일부 정보는 상업용으로 출시되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적, 또는 묵시적인 보증을 하지 않습니다.

필수 구성 요소

애플리케이션을 격리된 Win32 앱으로 패키지하려면 다음 필수 구성 요소가 필요합니다.

  • Visual Studio 버전 17.10.2 이상

1단계 - Windows 11 SDK 10.0.26100.0(이상)을 포함하여 Visual Studio에 필요한 워크로드 설치

Visual Studio 설치 관리자를 열고 기존 설치를 수정합니다. 워크로드 탭에서 Windows 애플리케이션 개발 상자를 선택합니다(필요에 따라 C++에서 개발을 위해 C++ WinUI 앱 개발 도구 상자 선택). 이 Windows 11 SDK 10.0.26100.0 (이상)도 필요합니다.

Visual Studio에 설치해야 하는 워크로드를 보여주는 스크린샷

2단계 - 앱 프로젝트 만들기

Visual Studio에서 비어 있는 앱, Windows 애플리케이션 패키징 프로젝트로 패키지됨(데스크톱의 WinUI 3) 템플릿을 사용하여 새 C# 또는 C++ 프로젝트를 만듭니다. 이 만들기 를 클릭한 다음 TPV(대상 플랫폼 버전) 및 TPMinV(대상 플랫폼 최소 버전)에 대해 10.0.26100.0 (이상)을 선택합니다.

Visual Studio에서 Windows 패키징 프로젝트가 있는 빈 앱에 대한 템플릿을 보여 주는 스크린샷

Visual Studio에서 새 프로젝트 화면을 보여 주는 스크린샷

Visual Studio에서 새 WinUI 프로젝트 화면을 보여 주는 스크린샷

3단계 - NuGet을 사용하여 Microsoft.Windows.SDK.BuildTools 버전 10.0.26100.1 이상 설치

프로젝트 -> NuGet 패키지 관리 로 이동하여 Microsoft.Windows.SDK.BuildTools 버전 10.0.26100.1(이상)을 설치합니다.

Visual Studio의 NuGet 패키지 관리 화면을 보여 주는 스크린샷

Visual Studio의 NuGet 화면에서 Microsoft.Windows.SDK.BuildTools 패키지를 보여주는 스크린샷

Visual Studio의 NuGet 화면에서 빌드 도구 패키지에 대한 정보를 보여주는 스크린샷

4단계 - Packaging.appxmanifest 파일 편집

매니페스트 파일에서 다음을 변경해야 합니다.

참고: 격리된 win32 애플리케이션은 동일한 패키지 내의 다른 애플리케이션 유형과 호환되지 않습니다.

  • xmlns:previewsecurity2="http://schemas.microsoft.com/appx/manifest/preview/windows10/security/2" 가 아직 없는 경우 <Package> 요소에 추가합니다.

    • <Package> 요소의 끝에 있는 IgnorableNamespacespreviewsecurity2 를 추가합니다.
  • xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10" 가 아직 없는 경우 <Package> 요소에 추가합니다.

    • <Package> 요소의 끝에 있는 IgnorableNamespacesuap10 를 추가합니다.
  • <Dependencies> 에서 TargetDeviceFamily<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.26100.0" MaxVersionTested="10.0.26100.0" />으로 변경합니다.

    참고 항목

    모든 기능을 최소 빌드에서 사용할 수 있는 것은 아닙니다. 자세한 내용은 릴리스 정보 를 확인하세요.

  • <Application> 에서 기존 entrypoint/trustlevel/runtimebehavior를 uap10:TrustLevel="appContainer" previewsecurity2:RuntimeBehavior="appSilo"로 대체합니다.

  • <Application> 확장에서는 부모 <Application>에서 상속된 EntryPoints=* 또는 Executable=* 을 제거합니다.

  • windows.protocol 에 대한 확장 요소에 desktop7:Scope="user" 를 추가합니다.

    참고 항목

    기본적으로 앱이 패키지된 Win32이므로 Visual Studio는 <Capabilities><rescap:Capability name="runFullTrust"> 를 자동으로 추가합니다. 앱에 runFullTrust 기능이 필요하기 때문에 사용자 전역 상태(예: comServer 또는 FirewallRules)에 영향을 줄 수 있는 다른 매니페스트된 확장이 없으면 제거해야 합니다.

Visual Studio의 패키징 앱 구성을 보여 주는 스크린샷

5단계 - 앱 패키지 빌드 및 게시

Visual Studio 솔루션을 빌드합니다.

Visual Studio의 솔루션 빌드를 보여주는 스크린샷

앱 패키지 만들기 마법사를 사용하여 앱 패키지를 게시합니다.

Visual Studio의 앱 패키지 만들기 마법사를 보여주는 스크린샷

Visual Studio의 앱 패키지 마법사에서 만들기 단계를 보여주는 스크린샷

앱 패키지를 게시한 후 표시된 출력 위치 에는 MSIX 패키지가 버전별로 게시되는 루트 디렉터리가 표시됩니다. 버전 폴더에서 열어 앱을 설치하기 위한 Install.ps1 파일을 찾습니다.

Visual Studio의 마법사에서 패키징을 성공적으로 만든 것을 보여주는 스크린샷

앱 격리 개요

애플리케이션 기능 프로파일러

MSIX를 사용하여 격리된 Win32 앱 패키징