앱 패키징은 Windows 예측 가능한 설치, 업데이트 및 서비스 모델을 앱에 제공합니다. WinUI 3 앱은 기본적으로 패키지되지만 다른 많은 앱 유형은 패키지되지 않습니다. 패키지 ID에 의존하는 기능에는 백그라운드 작업, 푸시 알림, Windows 10 라이브 타일, 사용자 지정 상황에 맞는 메뉴 확장, 공유 대상 및 기타 확장 지점이 포함됩니다. 패키징은 또한 Microsoft Store 및 엔터프라이즈 배포 도구와 같은 채널을 통한 보다 깔끔한 배포, 신뢰할 수 있는 업데이트 및 배포를 지원합니다.
배포는 앱 및 런타임 종속성을 사용자에게 배포하는 방법을 결정합니다. 이 개요는 패키징 모델, 배포 경로 및 Windows 앱 SDK 사용하는 앱의 경우 프레임워크 종속 또는 자체 포함 배포 모델을 선택하는 데 도움이 됩니다.
패키징, 배포 및 배포 옵션 선택
- 패키지, 패키지된 외부 위치 및 패키지되지 않은 모델을 비교하려면 패키징 개요를 참조하세요.
- Microsoft Store, 엔터프라이즈 및 직접 다운로드 경로를 비교하려면 배포 경로 선택을 참조하세요.
- 프레임워크 종속 및 자체 포함 Windows 앱 SDK 배포를 비교하려면 Windows 앱 SDK 배포 개요를 참조하세요.
- 프로토콜을 포함한
ms-appinstaller배포 기능의 현재 상태는 Windows 앱 배포 기능의 현재 상태를 참조하세요.
Windows 앱 배포 시나리오 빠른 참조
다음 표에서는 일반적인 배포 목표를 패키징 및 Windows 앱 SDK 런타임 옵션에 매핑합니다. 코드 서명 비용 및 MDM(모바일 디바이스 관리) 지원은 배포 경로 선택을 참조하세요.
| 배포 목표 | 패키징 모드 | 런타임 모드 | 대상 컴퓨터의 Windows 앱 SDK 런타임 |
|---|---|---|---|
| 패키지(MSIX) | 프레임워크 종속 | 스토어에서 자동 설치 | |
| 웹 사이트에서 직접 MSIX 다운로드( 앱 설치 관리자 사용) | 패키지(MSIX) | 둘 중 하나 | 자체 포함된 경우 번들로 묶음; 프레임워크에 종속된 경우 프레임워크 패키지를 앱과 함께 배포 해야 합니다. |
| Microsoft Intune 또는 Microsoft Configuration Manager 통한 엔터프라이즈 배포(ConfigMgr) | 패키지(MSIX) 또는 외부 위치로 패키지됨(Windows 10, 버전 2004, 빌드 19041 이상) | 둘 중 하나 | 패키지된 앱은 프레임워크 종속성을 선언할 수 있습니다. 외부 위치로 패키지된 프레임워크 종속 앱은 런타임을 별도로 배포해야 합니다. |
| WiX 또는 Inno 설치 관리자를 사용하여 직접 다운로드 | 외부 위치로 패키지되거나 패키지되지 않음 | 독립 실행형 권장 | 독립 실행형 배포로 번들됨 |
| Xcopy 또는 ZIP 아카이브(설치 프로그램 없음) | Unpackaged | 독립적인 | 자체 포함 배포에 번들됨 |
| 프레임워크 종속 다운로드(가장 작은 공간) | Unpackaged | 프레임워크 종속 | 미리 설치하거나 별도로 배포해야 합니다. |
| 연속 통합 아티팩트 또는 내부 테스트 | 둘 중 하나 | 독립형으로 장비 설정 간소화 | 자체 포함된 경우 번들로 묶음; 프레임워크에 종속된 경우 런타임 설치 필요 |
메모
PublishSingleFile (단일 파일 EXE)는 패키지되지 않은 자체 포함 .NET WinUI 3 앱에서 작동합니다(Windows 앱 SDK 1.5 이상). 처음 시작할 때 임시 디렉터리에 대한 종속성을 추출하는 단일 배포 가능 EXE를 생성합니다. 패키지 앱(MSIX 또는 외부 위치에 패키지된 앱)은 PublishSingleFile지원하지 않습니다. 필요한 MSBuild 속성 및 빌드 시간 유효성 검사는 다음을 참조하세요 WindowsAppSDKSingleFileVerifyConfiguration.
패키징 및 배포 리소스
포장
패키지, 설치 및 업데이트 방법을 구성하여 배포를 위해 앱을 준비합니다.
배포
프레임워크 또는 자체 포함 배포 옵션을 사용하여 앱에서 Windows 앱 SDK 제공하고 관리하는 방법을 알아봅니다.
관련 콘텐츠
Windows developer