MSIX 앱 패키지에 대한 차등 업데이트

MSIX 앱 패키지 업데이트의 이해

MSIX 앱 패키지를 만들면 MSIX 앱 패키지에 포함된 파일과 관련된 세부 정보가 들어 있는 매니페스트 파일이 생성됩니다. 패키지를 만드는 동안 메타데이터가 생성되어 .msix 또는 .msixbundle 패키지에 저장되므로 패키지의 일부를 Windows가 고유하게 식별할 수 있습니다. 나중에 업데이트할 때 Windows에서는 이 메타데이터 파일을 사용하여 이전 패키지를 새 패키지와 비교하고 디바이스에 다운로드해야 하는 항목을 결정할 수 있습니다. 이 메타데이터를 통해 패키지의 일부를 고유하게 식별할 수 있으므로, 차등 업데이트 시스템은 패키지의 버전에 전혀 관계없이 완전하게 작동합니다(원본 패키지가 대상 패키지보다 낮은 버전이라고 가정함).

모든 메타데이터는 AppxBlockMap.xml 파일(앞에서 언급한 메타데이터)에서 시작합니다. AppxBlockMap.xml 파일은 패키지에 있는 파일에 대한 2차 정보 목록을 포함하는 XML 문서입니다. 1차는 파일에 높은 수준의 세부 정보(예: 이름 및 크기)를 제공하고, 2차는 해당 파일의 각 64KB 슬라이스(“블록”)에 대한 SHA2-256 해시 표현을 제공합니다.

첫 번째 해시는 파일의 첫 번째 64KB 블록을 나타내고, 두 번째 해시는 나머지 35KB를 나타냅니다(파일이 101188바이트인 경우).

업데이트 중에 해당 파일의 두 번째 블록이 수정되면 해시도 이를 반영하도록 업데이트됩니다. 다운로드 구성 요소는 이 사실을 이해하고 두 번째 블록만 가져오며 이전 패키지의 변경되지 않은 첫 번째 블록을 다시 사용합니다.

뿐만 아니라 전체 파일이 변경되지 않은 경우(변하지 않는 전체 블록 세트에 의해 결정됨) 기존 패키지에서 해당 파일을 다시 사용할 수 있으므로 Windows 10 사용자에 들어가는 비용을 상당히 줄일 수 있습니다.

새 버전으로 업그레이드

새 버전의 MSIX 앱 패키지를 설치하면 매니페스트 파일을 비교하여 수정된 파일 블록을 식별합니다. MSIX 앱 패키지는 최신 버전으로 업그레이드되므로 업데이트된 애플리케이션이 네트워크 공유 또는 조직 외부에 있는 경우 수정된 파일만 검색되어 대역폭 소비가 감소합니다.

이전 버전으로 업그레이드

이전 버전의 MSIX 앱 패키지를 설치하면 매니페스트 파일을 비교하여 수정된 파일 블록을 식별합니다. MSIX 앱 패키지는 이전 버전으로 업그레이드되므로 업데이트된 애플리케이션이 네트워크 공유 또는 조직 외부에 있는 경우 수정된 파일만 검색되어 대역폭 소비가 감소합니다.

업그레이드 환경 최적화

MSIX 앱 패키지를 디바이스에 배달 또는 설치하도록 구성하여 사용자 환경을 개선할 수 있습니다. 앱이 배포되면 사용자가 앱을 닫은 후 앱을 업데이트하도록 또는 애플리케이션을 강제로 닫고 앱을 강제로 업데이트하도록 디바이스를 구성할 수 있습니다.

PowerShell

PowerShell을 사용하여 디바이스에 MSIX 앱 패키지를 설치하면 add-appxpackage cmdlet이 사용됩니다. 이 cmdlet에는 MSIX 앱 패키지 설치 또는 업그레이드 사용자 환경을 변경하는 다음 매개 변수가 포함되어 있습니다.

매개 변수 Description
-DeferRegistrationWhenPackagesAreInUse 이 cmdlet은 사용자가 현재 앱을 열어 놓은 상태에서 MSIX 앱 패키지를 업데이트하지 못하게 합니다.
-ForceApplicationShutdown 이 cmdlet은 패키지와 관련된 모든 활성 프로세스 또는 해당 종속성을 강제로 종료하도록 지정합니다.
-ForceUpdateFromAnyVersion 더 높은 버전이 이미 준비/등록되었는지 여부에 관계없이, MSIX 앱 패키지가 특정 버전의 패키지를 강제로 준비/등록하도록 지정합니다.
-InstallAllResources cmdlet이 번들 인수에 지정된 모든 리소스 패키지를 강제로 배포하도록 지정합니다. 이렇게 하면 배포 엔진의 리소스 적용 가능성 검사가 재정의되고 모든 리소스 패키지의 준비가 강제로 수행됩니다.
-RetainFilesOnFailure 배포가 실패하고 이 스위치가 true로 설정된 경우 설치 과정에서 대상 머신에 만들어진 파일은 제거되지 않습니다.
-Update 추가되는 패키지가 종속성 패키지 업데이트임을 지정합니다. 종속성 패키지는 부모 앱이 제거될 때 함께 제거됩니다. 지정하지 않으면 부모 앱이 제거될 때 패키지가 제거되지 않습니다.

이 cmdlet에 사용할 수 있는 매개 변수의 전체 목록을 보려면 add-appxpackage의 PowerShell 문서를 참조하세요.