Windows 앱의 배포 경로 선택

Windows 앱을 배포하는 방법은 코드 서명 비용, 업데이트 메커니즘, 엔터프라이즈 관리 효율성 및 고객이 앱을 검색하고 설치하는 방법에 영향을 줍니다. 이 문서에서는 올바른 선택을 하는 데 도움이 되는 기본 경로를 비교합니다.

팁 (조언)

대부분의 개발자에게 Microsoft Store 권장 경로입니다. 광범위한 검색 기능, 신뢰할 수 있는 설치 환경 및 MSIX 제출에 대해 관리할 인프라를 제공하지 않습니다(패키지를 다시 서명하고 호스트하는 Microsoft). Win32 MSI/EXE 설치 관리자 제출도 수락됩니다. 게시자는 버전이 지정된 HTTPS 설치 관리자 URL을 호스트해야 합니다. MSI/EXE 앱 제출을 참조하세요. MSIX 제출은 무료 코드 서명과 기본 제공 업데이트 배달을 제공합니다.

메모

앱이 웹 기술(HTML, JavaScript, CSS)을 기반으로 하는 경우 PWA(Progressive Web App) 는 네이티브 패키징 도구가 필요하지 않은 Microsoft Store 가장 빠른 경로입니다.

배포 경로 한눈에 보기

Path 적합한 대상 코드 서명 비용 자동 업데이트 Enterprise MDM 스토어를 통해 배포
Microsoft Store(MSIX) 소비자 및 비즈니스 앱, 광범위한 범위 ✅ 무료(스토어에서 패키지 다시 서명) ✅ 기본 제공 Intune을 통해 ✅ 회사 포털과 함께 ✅ 예
Microsoft Store(MSI/EXE 설치 관리자) 자체 설치 프로그램이 포함된 기존 Win32 앱 💲 Publisher Microsoft 신뢰할 수 있는 루트 프로그램에 연결된 인증서를 사용하여 설치 관리자 및 모든 PE 파일에 서명해야 합니다 ❌ 수동(앱 또는 설치 관리자가 업데이트를 처리) Intune을 통해 ✅ 회사 포털과 함께 ✅ 예
PWA(프로그레시브 웹앱) 웹앱 및 웹 기반 환경 ✅ 무료(사용자를 위한 스토어 표지판) ✅ 스토어 또는 브라우저를 통해 Intune을 통해 ✅ 회사 포털과 함께 ✅ 예
MSIX 사이드로드(엔터프라이즈) Intune/ConfigMgr을 통한 내부 LOB 앱 💲 Azure 아티팩트 서명(이전의 신뢰할 수 있는 서명, ~$10/월) 또는 자체 서명 + Intune 인증서 프로필 ✅ 앱 설치 관리자 파일 또는 MDM을 통해 ✅ 네이티브 ❌ 아니요
MSIX 직접 다운로드(ISV) 자체 사이트에서 판매된 상용 앱 💲 CA에서 신뢰할 수 있는 인증서 필요(Azure 아티팩트 서명(이전의 신뢰할 수 있는 서명) 권장) ✅파일을 통해 .appinstaller ⚠️ 제한됨 ❌ 아니요
외부 위치로 패키징 Windows 기능이 필요한 자체 설치 관리자가 있는 기존 앱 💲 MSIX 직접 다운로드와 동일 ✅ 기존 메커니즘 ⚠️ 제한됨 ⚠️ MSI/EXE 스토어 제출을 통해(게시자 서명 필요)
패키지되지 않은 WinUI 3 틈새 시장: MSIX 기능이 없는 엔터프라이즈 또는 최대 설치 단순성 💲 SmartScreen에 권장되는 인증서 ❌ 수동 전용 ⚠️ 제한됨(Intune/ConfigMgr Win32 배포를 통해) ⚠️ MSI/EXE 스토어 제출을 통해(게시자 서명 필요)

Microsoft Store 게시는 Windows 앱에 대한 가장 완벽한 배포 솔루션입니다. 두 개의 제출 경로를 사용할 수 있습니다.

  • MSIX 제출 - 새 앱 및 WinUI 3 앱에 권장됩니다. Microsoft 패키지를 다시 서명합니다. 인증서 구매가 필요하지 않습니다. 스토어 관리형 업데이트, 단계별 출시 및 차등 다운로드가 포함됩니다.
  • MSI/EXE 설치 관리자 제출 - 자체 설치 관리자 가 있는 기존 Win32 앱용입니다. Publisher 버전이 지정된 HTTPS URL을 publisher 자체 CDN에서 호스트되는 설치 관리자에 제출합니다. 스토어는 스토어 설치 흐름의 일부로 해당 URL에서 설치 관리자를 다운로드하고 실행합니다. Publisher는 Microsoft 신뢰할 수 있는 루트 프로그램의 CA로 연결된 인증서를 사용하여 설치 관리자에 서명해야 합니다. 업데이트는 앱의 책임입니다.

얻을 수 있는 항목(두 경로 모두):

  • 스토어의 검색 및 큐레이팅된 컬렉션을 통한 검색
  • 신뢰할 수 있는 설치 UX
  • 수익 처리, 환불 및 분석 기능 포함
  • Intune을 통해 회사 포털로 엔터프라이즈 배포

요구 사항:

이 옵션을 선택하는 경우:

  • 앱은 소비자 또는 비즈니스 사용자를 광범위하게 대상으로 합니다.
  • 가능한 가장 간단한 배포 인프라를 원합니다.
  • 새 WinUI 3 앱을 빌드하고 있습니다(이미 패키지되어 있습니다. 제출하기만 하면 됩니다).

Microsoft Store

PWA(프로그레시브 웹앱)

앱이 웹 사이트이거나 주로 웹 기술을 기반으로 구축된 경우 프로그레시브 웹앱은 네이티브 패키징 도구 또는 코드 서명 구매가 필요하지 않은 Microsoft Store 가장 빠른 경로입니다.

PWA는 브라우저가 독립 실행형 앱으로 설치할 수 있는 웹앱입니다. 오프라인으로 실행되고, 푸시 알림을 보내고, 시작 메뉴 및 작업 표시줄에 표시되며, Microsoft Store 통해 배포할 수 있습니다. PWABuilder를 사용하여 몇 분 안에 스토어 제출을 위해 사이트를 패키지합니다.

얻을 수 있는 내용:

  • 무료 코드 서명이 있는 스토어 배포 (스토어가 패키지를 서명)
  • 최신 브라우저를 사용하여 모든 디바이스에서 작동
  • 수동 MSIX, WiX 또는 설치 관리자 작성이 필요하지 않습니다. PWABuilder 와 같은 도구는 Microsoft Store 제출 패키지를 생성합니다.
  • 기본 제공 업데이트 배달 - 사용자는 항상 최신 웹 콘텐츠(스토어 다시 제출 없이 호스트된 콘텐츠 업데이트)를 받습니다.

요구 사항:

Limitations:

  • 추가 브리징 없이는 심층 네이티브 Windows API(파일 시스템 액세스, Web API 이외의 하드웨어 통합)를 사용할 수 없습니다.
  • 앱 논리는 네이티브 .NET, C++또는 WinRT API가 필요한 앱에는 적합하지 않은 웹 컨텍스트에서 실행됩니다.

이 옵션을 선택하는 경우:

  • 앱이 설치 가능하도록 만들려는 웹앱, SaaS 도구 또는 콘텐츠 사이트입니다.
  • 최소한의 도구를 사용하여 스토어에 대한 가장 빠른 경로를 원합니다.
  • 최신 Web API에서 기능 요구 사항을 충족합니다.

프로그레시브 웹 앱 개요
PWABuilder를 사용하여 Microsoft Store PWA를 게시합니다

MSIX 사이드로딩 - 엔터프라이즈 라인 오브 비즈니스 배포

Microsoft Intune 또는 구성 관리자를 통해 관리되는 디바이스에 배포될 내부 LOB(기간 업무) 앱의 경우, MSIX 사이드로드가 권장되는 방법입니다.

얻을 수 있는 내용:

  • MDM 정책을 통한 자동 설치 및 업데이트
  • 엔터프라이즈 디바이스 관리와 통합(Intune, ConfigMgr)
  • 전체 패키지 ID 및 Windows 기능에 대한 액세스(알림, 백그라운드 작업 등)

코드 서명:

요구 사항:

  • 대상 디바이스는 서명 인증서를 신뢰해야 합니다(MDM 또는 그룹 정책을 통해).
  • 대상 디바이스에서 사이드로딩을 허용해야 합니다(Windows 10 버전 2004 이상 및 모든 Windows 11 디바이스에서는 기본적으로 활성화되어 있음)

이 옵션을 선택하는 경우:

  • 회사 관리 디바이스에 내부 앱 배포
  • Intune 또는 그룹 정책을 통해 인증서 트러스트를 구성할 수 있는 IT 팀이 있습니다.

intune을 사용하여 MSIX 앱 배포
구성 관리자

MSIX 직접 다운로드 - ISV 및 상용 앱

Microsoft Store가 아닌 웹 사이트에서 직접 판매되는 상용 앱의 경우 자동 업데이트 지원을 위해 파일과 함께 .appinstaller MSIX 패키지를 배포할 수 있습니다.

얻을 수 있는 내용:

  • 앱 설치 관리자를 통한 친숙한 설치 환경
  • 파일을 통한 .appinstaller 자동 업데이트 지원(서버에서 호스트됨)
  • 전체 패키지 ID 및 Windows 기능 액세스
  • 자체 배포 채널 및 가격 책정 제어

코드 서명:

  • CA에서 신뢰할 수 있는 코드 서명 인증서가 필요합니다. 사용자가 인증서를 수동으로 신뢰하지 않고는 서명되지 않은 또는 자체 서명된 MSIX 패키지를 설치할 수 없습니다.
  • Azure 아티팩트 서명(이전의 신뢰할 수 있는 서명)(~$10/월)은 하드웨어 토큰이 필요하지 않고 CI/CD 파이프라인과 통합되는 Microsoft 권장되는 옵션입니다.
  • 기존 OV 인증서도 허용됩니다(일반적으로 CA에서 연간 $150~300).

Smartscreen: 새 인증서는 다운로드 볼륨에 따라 시간이 지남에 따라 SmartScreen 평판을 누적합니다. 새로운 릴리스에 대해 SmartScreen 프롬프트가 표시될 수 있습니다. Windows 앱 개발자에 대한 SmartScreen 평판 참조하세요.

중요합니다

ms-appinstaller: URI 프로토콜(원클릭 브라우저 설치)은 기본적으로 2023년 12월부터 사용하지 않도록 설정됩니다. 다운로드를 위해 .appinstaller 파일에 직접 연결하거나 더 광범위한 범위를 위해 스토어에 게시하는 것이 좋습니다. Windows 앱 배포 기능의 동시 상태 참조하세요.

이 옵션을 선택하는 경우:

  • 웹 사이트에서 직접 소프트웨어를 판매하는 ISV입니다.
  • 스토어에서 지원하지 않는 설치 관리자 UX, 가격 책정 또는 라이선스를 제어해야 합니다.
  • 고객은 스토어 외부에서 소프트웨어를 조달하는 기업입니다.

앱 설치 관리자 파일 개요
자동 업데이트 및 복구

외부 위치 패키징(희소 패키지)

자체 설치 관리자(WiX, NSIS, InstallShield)가 있는 기존 앱이 있고 설치 관리자를 MSIX로 대체하지 않고 패키지 ID가 필요한 Windows 기능을 추가하려는 경우 외부 위치로 패키징을 사용합니다.

얻을 수 있는 내용:

  • 패키지 ID를 설치 관리자나 이진 파일 위치를 변경하지 않고 확인합니다.
  • Windows 기능에 대한 액세스: 알림, 백그라운드 작업, 파일 형식 연결, 프로토콜 처리기
  • 기존 설치 및 업데이트 메커니즘이 그대로 유지됩니다.

얻을 수 없는 항목:

  • 직접 MSIX 스토어 제출(스파스 패키지 자체는 스토어에서 제출되지 않지만 기본 설치 관리자는 MSI/EXE 스토어 설치 관리자 경로를 통해 제출할 수 있습니다.)
  • 전체 MSIX의 클린 설치/제거 모델

이 옵션을 선택하는 경우:

  • 기존의 Win32/WPF/WinForms 앱에 설정된 설치 프로그램이 있습니다.
  • 패키지 ID가 필요한 특정 Windows API 기능을 원합니다.
  • 지금은 MSIX로 완전히 마이그레이션할 수 없습니다.

외부 위치로 패키징하여 패키지 ID 부여

패키지되지 않은 WinUI 3

패키지되지 않은 배포는 그림에서 MSIX를 완전히 제거합니다. 앱은 패키지 매니페스트 없이 폴더에서 직접 실행됩니다. 이는 특정 시나리오에 적합한 틈새 옵션입니다.

얻을 수 있는 내용:

  • 더 간단한 빌드 출력(파일 폴더, MSIX 도구 없음)
  • 대상 머신에 MSIX 인프라가 필요하지 않음
  • MSIX 사이드로딩이 사용 설정되지 않은 기기에서 작동

Limitations:

  • 단일 파일 EXE 없음 - Windows 앱 SDK 런타임은 실행 파일과 함께 별도의 파일로 제공되어야 합니다.
  • 런타임 배포 - Windows 앱 SDK 런타임 설치 관리자를 번들로 묶거나 자체 포함 배포(더 큰 출력)를 사용해야 합니다.
  • 패키지 ID 없음 - 자동 업데이트, 백그라운드 작업 없음, 매니페스트를 통한 파일 형식 연결 없음
  • MSIX/package-identity Store 제출 없음 - 이 모델에는 패키지 ID가 없으며 MSIX 패키지로 Store에 제출할 수 없습니다. 기존 설치 관리자(MSI/EXE)는 별도로 제출할 수 있지만 이 배포 경로 밖에 있습니다.
  • CA 신뢰할 수 있는 인증서로 서명되지 않은 경우 SmartScreen 경고

이 옵션을 선택하는 경우:

  • 대상 환경에서는 MSIX를 사용할 수 없습니다(일반적이지는 않지만 대부분의 관리형 엔터프라이즈 환경은 MSIX를 지원함).
  • MSIX 오버헤드가 정당화되지 않는 내부 도구를 빌드하고 있습니다.

대부분의 WinUI 3 앱에서 MSIX(스토어 또는 직접 다운로드를 통해)가 더 나은 경로입니다. 위의 제한 사항은 비패키지 배포에 투자한 후 이를 발견한 개발자들을 종종 놀라게 합니다.

패키지되지 않은 WinUI 3 앱 배포 - 런타임 배포 옵션을 사용하는 단계별 가이드

많은 Windows 앱은 ClickOnce, MSI, WiX, Inno 설치 또는 유사한 기술을 사용하여 배포됩니다. 특히 MSIX를 사용할 수 없거나 스토어 배포가 필요하지 않은 앱에 대해 설정되고 지원되는 옵션입니다. 아래 표에는 일반적인 옵션과 그 결정의 장단점이 정리되어 있습니다.

메서드 자동 업데이트 코드 서명 필요 자격 기준을 충족하는 매장 적합한 대상
스토어를 통한 MSIX ✅ 기본 제공 ✅ 무료(스토어 표지판) ✅ 예 대부분의 앱 - 권장되는 시작점
MSIX + .appinstaller ✅ 기본 제공 💲 CA에서 신뢰할 수 있는 인증서 ❌ 아니요 웹 사이트에서 직접 배포하는 ISV
ClickOnce ✅ 기본 제공 💲 인증서 권장 ❌ 아니요 WPF/WinForms 앱; WinUI 3에 지원되지 않음
MSI / WiX / Inno 설치 ⚠️ 수동 또는 사용자 지정 💲 인증서 권장 ⚠️ MSI/EXE 스토어를 통해 제출(아래 참조) 복잡한 설치 요구 사항 또는 기존 설치 관리자가 있는 앱
독립 실행형 EXE(xcopy/zip) ❌ 없음 💲 인증서 권장 ❌ 아니요 간단한 유틸리티; 개발자/파워 사용자 대상 그룹
winget 매니페스트 ✅ winget을 통해 💲 인증서 권장 ❌ 아니요 위의 항목 중 어느 것이든 winget install를 통해 검색 가능성을 추가합니다.

ClickOnce (클릭원스)

ClickOnce는 Visual Studio 기본 제공되는 .NET 배포 기술입니다. 웹 서버 또는 파일 공유에서 매니페스트를 호스트합니다. 사용자는 매니페스트 URL에서 설치하고 ClickOnce는 시작 시 업데이트 검사를 처리합니다. 알려진 사용자 기반에 배포된 WPF 및 WinForms 앱에 적합합니다.

ClickOnce는 WinUI 3 앱에서 지원되지 않습니다. WinUI 3 직접 배포에 MSIX를 .appinstaller 사용합니다.

ClickOnce 보안 및 배포

MSI, WiX, Inno Setup 및 NSIS

기존 EXE 및 MSI 설치 관리자는 복잡한 설치 요구 사항(드라이버 설치, 시스템 서비스, 레지스트리 구성)을 사용하는 Windows 앱에 공통적으로 적용됩니다. WiX 도구 집합, Inno SetupNSIS와 같은 도구는 커뮤니티에서 유지 관리되며 널리 사용됩니다. 업데이트 지원을 사용하려면 사용자 고유의 구현이 필요합니다.

이러한 형식은 MSIX 패키지로 스토어에서 적합하지 않지만 MSI/EXE 설치 관리자 경로(Microsoft 신뢰할 수 있는 루트 프로그램의 CA에 연결된 인증서가 필요하며, 자동 설치가 가능한 설치 관리자)를 통해 스토어에 제출할 수 있습니다. 특정 Windows 기능에 패키지 ID가 필요한 경우 패키징과 외부 위치 결합할 수도 있습니다.

독립 실행형 EXE(xcopy 배포)

dotnet publish --self-contained 사용자가 .NET 설치하지 않고 실행할 수 있는 파일 폴더(또는 단일 파일 EXE)를 생성합니다. 이는 가장 간단한 배포 모델이지만 사용자가 새 버전을 수동으로 다운로드해야 합니다. 명령줄 도구, 개발자 유틸리티 및 파워 사용자 앱에 적합합니다.

winget - 모든 배포 경로에 검색 가능성 추가

패키징 형식에 관계없이 Windows 패키지 관리자 커뮤니티 리포지토리 매니페스트를 제출하여 winget install <your-app> 통해 앱을 설치할 수 있도록 할 수 있습니다. 이는 기존 배포 방법을 대체하지 않습니다. 개발자 및 기술 대상 그룹이 소중히 여기는 명령줄 설치 경로를 추가합니다.