이 문서에서는 Windows 앱 SDK 배포의 고급 아키텍처를 설명합니다. 아래 개념은 주로 Windows 앱 SDK 프레임워크 종속 앱에 적용됩니다. 프레임워크 종속 앱은 대상 머신에 있는 Windows 앱 SDK 런타임에 따라 달라집니다.
프레임워크 종속 앱을 배포하는 두 가지 주요 옵션이 있습니다.
앱 배포 방법 | 요구 사항 |
---|---|
패키지 | - 패키지 매니페스트에서 프레임워크 패키지에 대한 종속성을 선언해야 합니다. - 배포 API는 Microsoft Store 분산 앱에 필요하며 런타임 종속성이 설치되도록 비 스토어 분산 앱에 권장됩니다. |
외부 위치와 함께 패키지되거나 패키지되지 않음 | - 설치 관리자를 사용하거나 필요한 MSIX 패키지를 직접 설치하여 런타임을 배포해야 합니다. - 추가 런타임 요구 사항: 부트스트랩 API를 통해 Windows 앱 SDK 런타임에 대한 액세스를 초기화해야 합니다. |
이러한 요구 사항에 대한 자세한 내용은 다음 문서를 참조하세요.
주요 용어
다음 섹션에서는 Windows 앱 SDK 배포에 대한 주요 용어와 이러한 패키지 중 일부에 대한 추가 세부 정보를 정의합니다.
기간 | 정의 |
---|---|
Windows 앱 SDK 런타임 |
앱에서 Windows 앱 SDK를 사용하는 데 필요한 MSIX 패키지입니다. 이러한 패키지에는 프레임워크, Main, Singleton 및 DDLM이 포함됩니다. 사용된 기능 및 앱 배포 방법에 따라 대상 머신에 이러한 패키지의 특정 집합이 필요합니다. |
프레임워크 패키지 | 앱에서 런타임에 사용되는 이진 파일을 포함합니다(대부분의 Windows 앱 SDK 기능). 프레임워크에는 앱이 정기적으로 업데이트되는 최신 버전의 Windows 앱 SDK를 자동으로 설치할 수 있도록 하는 부트스트래퍼 구성 요소가 포함되어 있습니다. |
주 패키지 | 동적 종속성을 추적하는 백그라운드 작업을 포함하고 Microsoft Store에서 Framework 패키지에 대한 자동 업데이트를 사용하도록 설정하는 패키지입니다. |
싱글톤 패키지 | 백그라운드 작업, 서비스, 앱 확장 및 푸시 알림과 같은 프레임워크 패키지에 포함되지 않은 기타 구성 요소를 포함합니다. 일반적으로 앱 간에 중재되는 단일 장기 실행 프로세스입니다. |
DDLM 패키지(동적 종속성 수명 관리자) | 외부 위치에 패키징되었거나 패키지되지 않은 앱이 사용 중일 때 OS가 MSIX 패키지에 대한 서비스 업데이트를 수행하지 못하도록 합니다. |
부트스트래퍼 | 앱 로컬 이진 파일은 패키지된 앱이 외부 위치 및 패키지되지 않은 앱과 함께 사용될 때, 앱에 필요한 최상의 Windows 앱 SDK 버전을 찾아 로드하는 데 사용됩니다. |
프로비저닝 | 다른 사용자가 반복 설치할 필요가 없도록 패키지(파일 및 레지스트리 키 포함)를 시스템 전체에서 설치 및 등록하는 프로세스입니다. OS의 일부로 수행하거나 앱을 설치하는 동안 수행할 수 있습니다. |
설치 관리자 | Framework, Main, Singleton 및 DDLM 패키지를 배포하는 .exe 설치 관리자를 참조합니다. |
MSIX | 사용자가 Microsoft Store 또는 웹 사이트에서 직접 사용자당 앱을 안전하게 설치할 수 있는 최신 설치 관리자 기술입니다. 엔터프라이즈 또는 공유 PC에서는 PowerShell 및 MDM을 통해 모든 사용자에 대해 앱을 설치할 수 있습니다. |
프레임워크 패키지
Windows 앱 SDK를 사용하는 앱을 빌드할 때 앱은 프레임워크 패키지를 통해 최종 사용자에게 배포되는 Windows 앱 SDK 런타임 구성 요소 집합을 참조합니다. 프레임워크 패키지를 사용하면 앱이 앱 패키지에 묶는 대신 사용자 디바이스의 단일 공유 원본을 통해 Windows 앱 SDK 구성 요소에 액세스할 수 있습니다. 프레임워크 패키지는 DLL 및 API 정의(COM 및 Windows 런타임 등록)와 같은 자체 리소스도 제공합니다. 이러한 리소스는 앱의 컨텍스트에서 실행되므로 앱의 기능과 권한을 상속하고 자체의 기능이나 권한을 어설션하지 않습니다. 프레임워크 패키지 종속성에 대한 자세한 내용은 MSIX 프레임워크 패키지 및 동적 종속성을 참조하세요.
Windows 앱 SDK 프레임워크 패키지는 Microsoft Store를 통해 최종 사용자에게 배포되는 MSIX 패키지입니다. 서비스 릴리스로 쉽고 빠르게 업데이트할 수 있으며, 여기에는 보안 및 안정성 수정이 포함될 수 있습니다. Windows 앱 SDK를 사용하는 모든 프레임워크 종속 앱은 다음 다이어그램과 같이 프레임워크 패키지의 공유 인스턴스에 종속됩니다.
앱이 Windows 앱 SDK 프레임워크 패키지에 액세스하는 방법을 보여주는
Windows 앱 SDK 프레임워크 패키지의 새 버전이 서비스되면 모든 프레임워크 종속 앱이 복사본을 재배포할 필요 없이 새 버전으로 업데이트됩니다. Windows는 릴리스될 때 최신 버전의 프레임워크로 업데이트되며, 앱은 다시 실행하는 동안 최신 프레임워크 패키지 버전을 자동으로 참조합니다. 이전 프레임워크 패키지 버전은 시스템의 앱에서 더 이상 실행 중이거나 적극적으로 사용되지 않을 때까지 시스템에서 제거되지 않습니다.
앱 호환성은 Microsoft 및 Windows 앱 SDK에 의존하는 앱에 중요하기 때문에 Windows 앱 SDK 프레임워크 패키지는 의미 체계 버전 관리 2.0.0 규칙을 따릅니다. 즉, Windows 앱 SDK 버전 1.0을 릴리스한 후 Windows 앱 SDK 프레임워크 패키지는 부 버전과 패치 버전 변경 간의 호환성을 보장하며 주요 버전 업데이트 간에만 호환성이 손상되는 변경이 발생합니다.
싱글톤 패키지
싱글톤 패키지은 단일 장기 실행 프로세스가 여러 앱에서 사용되는 서비스를 처리할 수 있도록 보장하며, 이 서비스는 여러 버전의 Windows 앱 SDK에서 실행될 수 있습니다.
Windows 앱 SDK 싱글톤은 기존 UWP PushNotificationTrigger 및 ToastNotificationActionTrigger 클래스에서 지원될 수 없는 20H1 미만의 Windows 버전을 사용하여 패키지되지 않은 앱 및 패키지된 Win32 애플리케이션에 대한 푸시 알림을 사용하도록 설정하는 데 필요합니다. 프레임워크 패키지에서 지원될 수 없는 향후 Windows 앱 SDK 기능이 Singleton 패키지에 추가됩니다.
패키지되지 않은 앱에 대한 추가 요구 사항
부트스트래퍼
부트스트래퍼는 외부 위치와 함께 패키지된 앱이나 패키지되지 않은 앱에 포함되어야 하는 라이브러리입니다. 부트스트래퍼 API(외부 위치 또는 패키지되지 않은패키지된 앱의 경우
- Windows 앱 SDK 프레임워크 패키지에 대한 DDLM(동적 종속성 수명 관리자)을 초기화합니다.
- Windows 앱 SDK 프레임워크 패키지를 찾아 앱의 패키지 그래프에 로드합니다.
이러한 작업을 수행하기 위해 nuget 패키지는 모듈 이니셜라이저를 활용하여 부트스트래퍼를 연결합니다. 프로젝트 파일에서 설정 <WindowsPackageType>None</WindowsPackageType>
하기만 하면 됩니다. 고급 시나리오의 경우, 초기화를 제어하려면 앱의 시작 코드에서 직접 부트스트래퍼 API를 호출하여 패키지되지 않은 앱용 시스템을 적절히 초기화할 수 있습니다(자세한 내용은 자습서: 외부 위치로 패키지하거나 Windows 앱 SDK를 사용하는 패키지가 해제된 앱에서 부트스트래퍼 API 사용참조). 앱은 WinUI, 앱 수명 주기, MRT Core 및 DWriteCore와 같은 Windows 앱 SDK 기능을 사용하려면 먼저 부트스트래퍼 API를 사용해야 합니다.
Windows 앱 SDK 1.0 릴리스의 부트스트래퍼 라이브러리에는 다음이 포함됩니다.
- Microsoft.WindowsAppRuntime.Bootstrap.dll (C++ 및 C#)
- Microsoft.WindowsAppRuntime.Bootstrap.Net.dll(C# wrapper)
DDLM(동적 종속성 수명 관리자)
DDLM의 목적은 패키지되지 않은 앱에서 사용하는 동안 Windows 앱 SDK 프레임워크 패키지의 서비스를 방지하는 것입니다. 여기에는 해당 기능을 제공하기 위해 앱 시작 초기에 부트스트래퍼에서 초기화해야 하는 서버가 포함되어 있습니다.
Windows 앱 SDK 프레임워크 패키지의 각 버전 및 아키텍처에 대해 하나의 DDLM이 있습니다. 즉, x64
컴퓨터에는 두 아키텍처의 앱을 지원하기 위해 x86
및 x64
버전의 DDLM이 모두 있을 수 있습니다.
추가 요구 사항
- 패키지된 앱의 경우 VCLibs 프레임워크 패키지 종속성이 요구 사항입니다. 자세한 내용은 데스크톱 브리지 대한C++ 런타임 프레임워크 패키지를 참조하세요.
- 패키지되지 않은 앱의 경우 Visual C++ 재배포 패키지가 필수입니다. 자세한 내용은 Microsoft Visual C++ 재배포 패키지의 최신 지원 다운로드를참조하세요.
- C#. .NET 런타임에 대해서는 .NET 다운로드을 참조하세요.
관련 항목
Windows developer