Microsoft.Windows.Management.Deployment 네임스페이스

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}

클래스

Name Description
AddPackageOptions

AddPackageByUriAsync 메서드를 사용하여 패키지, 패키지 매니페스트 또는 앱 설치 관리자 파일을 추가할 때 구성할 수 있는 배포 옵션을 지정합니다.

EnsureReadyOptions

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
PackageCertificateEkuValidator

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
PackageDeploymentManager

사용자가 사용할 수 있는 소프트웨어를 관리합니다.

PackageDeploymentResult

배포 요청의 결과를 제공합니다.

PackageFamilyNameValidator

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
PackageMinimumVersionValidator

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
PackageRuntimeManager

PackageRuntimeManager 클래스는 PackageSet 작업에 대한 동적 종속성 지원을 제공합니다. 특히 호출자가 패키지를 통해 대상 지정하는 경우와 같이 관련된 정확한 패키지를 알 수 없는 경우에 특히 그렇습니다ms-uup:. PackageRuntimeManagerPackageSet에 관련된 패키지를 결정하고 동적으로 호출자의 패키지 그래프에 추가합니다.

PackageSet

하나의 요청으로 작동할 패키지 그룹인 패키지 집합을 나타내는 클래스입니다. 패키지 집합은 여러 작업을 수행하는 편리한 방법을 제공합니다.

! [참고] PackageSet에서 처리되는 항목의 순서 지정 보장은 없습니다.

PackageSetItem

PackageSet의 패키지를 나타냅니다.

PackageSetItemRuntimeDisposition

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
PackageSetRuntimeDisposition

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
PackageValidationEventArgs

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
PackageValidationEventSource

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
PackageValidationHandler

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
PackageVolume

패키지 스토리지 볼륨을 나타냅니다.

ProvisionPackageOptions

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
RegisterPackageOptions

RegisterPackageByUriAsync 메서드를 사용하여 패키지를 등록할 때 구성할 수 있는 배포 옵션을 지정합니다.

RemovePackageOptions

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
StagePackageOptions

StagePackageByUriAsync 메서드를 사용하여 패키지를 스테이징할 때 구성할 수 있는 배포 옵션을 지정합니다.

구조체

Name Description
PackageDeploymentProgress

배포 요청에 대한 진행률 정보를 포함합니다.

인터페이스

Name Description
IPackageValidator

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}

열거형

Name Description
PackageDeploymentFeature

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
PackageDeploymentProgressStatus

배포 요청의 진행 상태를 지정하는 상수를 정의합니다.

PackageDeploymentStatus

배포 요청의 상태입니다.

PackageReadyOrNewerAvailableStatus

추가되거나 스테이징되는 앱 패키지에 대한 스텁 동작을 정의합니다.

PackageVolumeFeature

이 네임스페이스는 Windows 해당하는 MSIX 패키지 관리 API를 제공합니다. Management.Deployment 네임스페이스이지만 추가 기능, 향상된 개발자 환경 및 성능 최적화를 제공합니다.

이러한 WinRT(Windows 런타임) API를 사용하면 소프트웨어를 MSIX 패키지로 배포하고 관리할 수 있습니다. 패키지를 설치, 업데이트, 제거, 열거 및 관리할 수 있습니다. API가 중점적인 시나리오는 다음과 같습니다.

  • 패키지 스테이징
  • 패키지 등록
  • 패키지 추가/업데이트
  • 패키지 제거
  • 패키지 복구
  • 패키지 다시 설정
  • 패키지 프로비전
  • 패키지 프로비전 해제

추가 기능에는 다음이 포함됩니다.

  • IsReadyXxx. 패키지를 사용할 준비가 되었는지 여부를 확인합니다.
  • EnsureReady. 패키지를 사용할 준비가 되었는지 여부를 확인하고, 그렇지 않은 경우 패키지로 만듭니다.
  • IsPackageRegistrationPending. 등록 대기 중인 업데이트가 있는지 여부를 확인합니다.
  • PackageSets. 일괄 처리 작업.
  • PackageRuntimeManager. 동적 종속성을 통해 런타임에 사용하기 위한 일괄 처리 작업입니다.
  • 유용성. 삶의 질 향상.

API 구조체

배포 작업을 구동하는 방법은 일반적으로 패턴을 따릅니다.

<verb>Package[Set][By<Type>][Suffix]Async(target, options)

지원되는 동사는 다음과 같습니다.

  • ...입니다. Ready[OrNewerAvailable]
  • 확인... 준비
  • 추가
  • 단계
  • Register
  • Remove
  • 수리
  • Reset
  • 프로비전
  • 프로비전 해제

이러한 메서드는 대상 패키지를 첫 번째 매개 변수로 허용합니다. 해당 매개 변수는 다음을 비롯한 다양한 유형의 정보일 수 있습니다.

  • Filename
  • Path
  • PackageFamilyName
  • PackageFullName
  • Uri

! [참고] URI의 대상이 있는 메서드의 이름은 ... ByUri....

! [참고] PackageFamilyName의 대상이 있는 메서드의 이름은 ... ByPackageFamilyName....

! [참고] PackageFullName의 대상이 있는 메서드의 이름은 ... ByPackageFullName....

! [참고] 없는 메서드... 유형<별>... 한정자는 하나 이상의 식별자 형식을 포함할 수 있는 문자열을 허용합니다. 동사마다 다를 수 있습니다. 각 메서드에서 지원하는 특정 대상 유형에 대한 API 설명서를 참조하세요.

이러한 메서드는 옵션을 일치하는 <verb>Package[Set]Options 형식으로 허용합니다(예: .) AddPackageAsync(string packageUri, AddPackageOptions options).

다음 표에서는 동사와 대상의 지원되는 순열을 보여 줍니다.

동사 Path Filename PackageFamilyName PackageFullName 파일: http(s): ms-uup: PackageSet
IsReady X X OS/WAS WAS X X WAS WAS
IsReadyOrNewerAvailable X X OS/WAS WAS X X WAS WAS
EnsureReady X X X X X X WAS WAS
추가 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
단계 OS/WAS X X X OS/WAS OS/WAS OS/WAS WAS
Register WAS OS/WAS OS/WAS OS/WAS OS/WAS X OS/WAS WAS
Remove X X WAS OS/WAS X X OS/WAS WAS
수리 X X WAS WAS X X WAS WAS
Reset X X WAS WAS X X WAS WAS
IsProvisioned X X OS/WAS X X X WAS WAS
프로비전 X X OS/WAS X X X WAS WAS
프로비전 해제 X X OS/WAS X X X WAS WAS

범례:

  • OS = Windows.Management.Deployment.PackageManager 클래스에서 Windows(OS) API에서 지원됩니다.
  • WAS = Microsoft.Windows.Management.Deployment.PackageDeploymentManager 클래스의 Windows 앱 SDK API 에서 지원됩니다.
  • X = 지원되지 않음

유용성

Windows 앱 SDK(Microsoft.Windows.Management.Deployment)의 패키지 관리 API는 Windows.Management.Deployment 의 패키지 관리 API(예: PackageManager)에 대한 몇 가지 수명 품질 향상 기능을 제공합니다. 여기에는 다음이 포함됩니다.

  • 패키지의 최신 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하여 ERROR_INSTALL_PACKAGE_DOWNGRADE 반환합니다. 그러나 PackageDeploymentManager.AddPackageByUriAsync 는 종속성 및 기타 패키지 참조가 일상적으로 처리되는 방식으로 요청을 "이 패키지 또는 더 높은 버전 설치"로 처리하므로 성공합니다.
  • 패키지의 정확한 버전이 이미 설치된 경우 PackageManager.AddPackageByUriAsync가 실패하고 ERROR_PACKAGE_ALREADY_EXISTS 반환합니다. 요청된 패키지가 설치되어 있으므로 PackageDeploymentManager.AddPackageByUriAsync가 성공합니다.
  • 대부분의 PackageManager 작업은 대상 패키지를 파일로 허용하지만 URI로 표현되어야 합니다. PackageDeploymentManager이를 문자열로 수락하는 재정의도 제공합니다.
  • 지정된 패키지를 찾을 수 없으면 PackageManager.RemovePackageByFullNameAsync가 실패합니다. 요청된 패키지가 작업이 끝날 때 존재하지 않으므로 PackageDeploymentManager가 성공합니다.
    • 이는 시스템의 이전 상태가 중요하지 않다는 핵심 배포 원칙 때문입니다. 원하는 끝 상태만 달성됩니다.
  • PackageManager 메서드는 대상 패키지를 표현하는 일관되지 않고 종종 불편한 순열을 허용합니다. 예를 들어 PackageManager 는 패키지 패밀리 이름이 아닌 패키지 전체 이름으로 패키지를 제거할 수 있습니다. PackageDeploymentManager 는 추가 식별자를 허용하는 보다 풍부한 API를 제공합니다.

플랫폼 지원

이러한 API는 Windows 10 버전 2004(10.0; 빌드 19041) 이상.

기능의 하위 집합은 최신 릴리스에서 사용할 수 있습니다. 예를 들어 AddPackageOptions.ExpectedDigests 에는 Windows 11 버전 22H2(10.0; 빌드 22621) 이상. Windows 10 버전 2004(10.0; 빌드 19041) 기준에는 현재 플랫폼이 기능을 지원하는지 여부를 런타임 시 감지하는 어도던스가 있습니다. 예를 들면 다음과 같습니다.

var options = new AddPackageOptions();
if (options.IsLimitToExistingPackagesSupported)
{
    options.LimitToExistingPackages = true;
}
StubPackageOption

추가되거나 스테이징되는 앱 패키지에 대한 스텁 동작을 지정하는 상수를 정의합니다.