프레임워크 종속 패키지 앱의 Windows 앱 SDK 배포 가이드

이 문서에서는 프레임워크 종속 패키지 앱 배포에 대한 지침을 제공합니다( MSIX란?참조). Windows 앱 SDK 사용합니다. 다른 프레임워크 종속 패키징 옵션과 동일한 항목은 외부 위치로 패키징되거나 언패키징된 프레임워크 종속 애플리케이션을 위한 Windows App SDK 배포 가이드입니다.

개요

기본적으로 Visual Studio에서WinUI 3 템플릿 중 하나를 사용하여 프로젝트를 만들 때 프로젝트는 단일 프로젝트 MSIX( Single Project MSIX참조) 또는 Windows 응용 프로그램 패키징 프로젝트( Visual Studio참조)를 사용하여 앱을 MSIX 패키지로 구축하도록 구성됩니다. 그런 다음 Visual Studio에서 데스크톱 또는 UWP 앱 패키지의 지침을 사용하여 앱에 대한 MSIX 패키지를 빌드할 수 있습니다. 앱에 대한 MSIX 패키지를 빌드한 후 MSIX 배포를 관리하는 몇 가지 옵션이 있습니다.

Windows 앱 SDK를 사용할 때 패키지된 앱에 필요할 수 있는 패키지에 대한 자세한 내용은 Windows 앱 SDK 대한 배포 아키텍처를 참조하세요 . 여기에는 Framework, MainSingleton 패키지가 포함되며모두 Microsoft에서 서명 하고 게시합니다. 패키지된 앱을 배포하기 위한 두 가지 기본 요구 사항이 있습니다.

  1. Windows 앱 SDK 프레임워크 패키지 배포
  2. 배포 API 호출.

필수 조건

Windows 앱 SDK 프레임워크 패키지 배포

Windows 앱 SDK 프레임워크 패키지에는 런타임에 사용되는 Windows 앱 SDK 이진 파일이 포함되어 있으며 애플리케이션과 함께 설치됩니다. 프레임워크에는 Windows 앱 SDK 채널마다 배포 요구 사항이 다릅니다.

안정적인 버전

개발 컴퓨터에 Windows 앱 SDK NuGet 패키지의 안정적인 릴리스 버전( 안정적인 채널 릴리스 정보참조)을 설치하고 제공된 WinUI 3 프로젝트 템플릿 중 하나를 사용하여 프로젝트를 만드는 경우 생성된 패키지 매니페스트에는 프레임워크 패키지에 대한 종속성을 지정하는 PackageDependency 요소가 포함됩니다 .

그러나 별도의 Windows 애플리케이션 패키징 프로젝트를 사용하여 앱 패키지를 수동으로 빌드하는 경우 다음과 같이 Application (package).wapproj 파일에서 PackageReference를 선언해야 합니다.

<ItemGroup>
   <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.0.1">
       <IncludeAssets>build</IncludeAssets>
   </PackageReference>
</ItemGroup>

이 패키지 종속성은 앱이 다른 컴퓨터에 배포될 때 Framework 패키지가 설치되도록 합니다.

미리 보기 버전

개발 컴퓨터에 Windows 앱 SDK NuGet 패키지의 미리 보기 릴리스 버전( 미리 보기 채널 릴리스 정보참조)을 설치하면 빌드 시간 동안 Windows 앱 SDK 프레임워크 패키지의 미리 보기 버전이 NuGet 패키지 종속성으로 배포됩니다.

배포 API 호출.

또한 Windows 앱 SDK 초기화를 참조하세요.

배포 API는 Windows 앱 SDK 프레임워크 패키지에서 제공되며 Microsoft.Windows.ApplicationModel.WindowsAppRuntime 네임스페이스에서 사용할 수 있습니다. Windows 애플리케이션 모델은 Main 및 Singleton 패키지에 대한 종속성 선언을 지원하지 않습니다. 따라서 다음과 같은 이유로 배포 API가 필요합니다.

  1. 프레임워크 패키지에 없는 기능에 대해 Singleton 패키지를 배포하려면(예: 푸시 알림)
  2. 기본 패키지를 배포하려면 Microsoft Store에서 프레임워크 패키지에 대한 자동 업데이트를 사용하도록 설정합니다.

스토어를 통해 배포되지 않은 패키지된 앱의 경우 개발자는 프레임워크 패키지를 배포할 책임이 있습니다. 중요한 서비스 업데이트가 배달되도록 배포 API를 호출하는 것이 좋습니다. 프레임워크 패키지 외부의 기능(예: 푸시 알림)을 사용하려면 Singleton 패키지를 배포해야 합니다(배포 API를 사용하거나 고유한 설치 방법을 사용하여 MSIX 패키지를 재배포하여 수행할 수 있음).

Important

Windows 앱 SDK 버전 1.0에서는 완전 신뢰이거나 packageManagement 제한된 기능이 있는 패키지된 앱만 배포 API를 사용하여 Main 및 Singleton 패키지 종속성을 설치할 수 있는 권한이 있습니다. 부분 신뢰 패키지 앱에 대한 지원은 이후 릴리스에서 출시될 예정입니다.

앱 프로세스가 초기화된 후에는 배포 API를 호출해야 하지만, 앱이 Singleton 패키지를 사용하는 Windows 앱 SDK 런타임 기능(예: 푸시 알림)을 사용하기 전에 호출해야 합니다. Deployment API의 주요 방법은 Deployment Manager 클래스의 static GetStatusInitialize 메서드입니다.

  • GetStatus 메서드는 현재 로드된 Windows 앱 SDK 런타임의 현재 배포 상태를 반환합니다. 이 메서드를 사용하여 현재 앱에서 Windows 앱 SDK 기능을 사용하기 전에 Windows 앱 SDK 런타임 패키지를 설치하는 데 필요한 작업이 있는지 여부를 식별합니다.
  • Initialize 메서드는 필요한 모든 패키지가 현재 로드된 Windows 앱 SDK 런타임에 필요한 최소 버전에 있는지 여부를 확인합니다. 누락된 패키지 종속성이 있는 경우 메서드는 누락된 패키지를 등록하려고 시도합니다. Windows 앱 SDK 1.1부터 Initialize 메서드는 Windows 앱 SDK 런타임 패키지를 강제로 배포하는 옵션도 지원합니다. 이렇게 하면 MainSingleton 런타임 패키지에 대한 모든 프로세스가 종료되므로 해당 서비스가 중단됩니다(예: 푸시 알림은 이 시간 동안 알림을 전달하지 않음).

배포 API 샘플 앱

DeploymentManager 클래스의 GetStatusInitialize 메서드를 사용하는 방법에 대한 추가 지침은 사용 가능한 샘플 앱을 참조하세요.

설치 오류 해결

배포 API에서 Windows 앱 SDK 런타임 패키지를 설치하는 동안 오류가 발생하면 문제를 설명하는 오류 코드를 반환합니다.

예를 들어 앱이 완전 신뢰가 아니거나 packageManagement 제한된 기능이 없는 경우 ACCESS_DENIED 오류 코드가 표시됩니다 . 발생할 수 있는 다른 오류 코드와 가능한 원인을 검토하려면 Windows 앱의 패키징, 배포 및 쿼리 문제 해결을 참조하세요 .

오류 코드가 충분한 정보를 제공하지 않는 경우 자세한 이벤트 로그에서 더 많은 진단 정보를 찾을 수 있습니다( 진단 정보 가져오기 참조).

진단할 수 없는 오류가 발생하는 경우 문제를 조사할 수 있도록 오류 코드 및 이벤트 로그를 사용하여 WindowsAppSDK GitHub 리포지토리 에 문제를 제출합니다.