DISM 앱 패키지(.appx 또는 .appxbundle) 서비스 명령줄 옵션

앱 패키지 서비스 명령을 사용하여 Windows 이미지에서 프로비전된 앱 패키지(.appx 또는 .appxbundle)를 추가, 제거 및 나열할 수 있습니다. .appxbundle은 지정된 PC에서 디스크 공간을 최소화하면서 앱 환경을 보강하는 데 함께 사용되는 앱 및 리소스 패키지의 컬렉션입니다. .appxbundle 패키지 및 Microsoft Store 파이프라인에 대한 자세한 내용은 앱 패키징을 참조하세요. DISM을 사용하여 번들을 프로비전하는 경우 .appxbundle 내의 패키지 하위 집합만 이미지에 추가할 수 있습니다. 자세한 내용은 DISM에서 .appxbundle 리소스 패키지를 이미지에 추가하는 방법 이해를 참조하세요.

프로비전된 앱 패키지는 Windows 이미지에 추가된 다음, 사용자가 다음에 로그온할 때 모든 새 프로필 또는 기존 사용자 프로필에 대해 설치됩니다. 앱 패키지 프로비전 요구 사항을 포함한 자세한 내용은 DISM을 사용하여 앱을 테스트용으로 로드를 참조하세요.

또한 PowerShell을 사용하여 Windows 설치에서 이미지별 또는 사용자별로 앱 패키지(.appx 또는 .appxbundle)를 추가, 제거 및 나열할 수 있습니다. 자세한 내용은 Windows PowerShell의 DISM(배포 이미징 서비스 관리) CmdletWindows PowerShell의 앱 설치 Cmdlet을 참조하세요.

DISM 서비스 구문

DISM을 사용하여 Windows 이미지를 서비스하기 위한 기본 구문은 다음과 같습니다.

DISM.exe {/Image:<path_to_image_directory>|/Online} [dism_global_options] {servicing_option} <servicing_argument>]

오프라인 이미지 옵션

오프라인 이미지에 사용할 수 있는 앱 패키지(.appx 또는 .appxbundle) 서비스 옵션은 다음과 같습니다.

DISM.exe /Image:<path_to_image_directory> [/Get-ProvisionedAppxPackages | /Add-ProvisionedAppxPackage | /Remove-ProvisionedAppxPackage | /Set-ProvisionedAppxDataFile | /StubPackageOption]

온라인 이미지 옵션

실행하는 운영 체제에 사용할 수 있는 앱 패키지(.appx 또는 .appxbundle) 서비스 옵션은 다음과 같습니다.

DISM.exe /Online [/Get-ProvisionedAppxPackages | /Add-ProvisionedAppxPackage | /Remove-ProvisionedAppxPackage | /Set-ProvisionedAppxDataFile | /StubPackageOption]

/Get-Help /?

명령줄 옵션을 서비스하는 앱 패키지 바로 뒤에 사용하면 옵션 및 인수에 대한 정보가 표시됩니다. 이미지가 지정되면 추가 항목을 사용할 수 있습니다.

Dism /image:C:\test\offline /Add-ProvisionedAppxPackage /?
Dism /online /Get-ProvisionedAppxPackages /?

/Get-ProvisionedAppxPackages

이미지에서 각 새 사용자에 대해 설치하도록 설정된 앱 패키지(.appx 또는 .appxbundle)에 대한 정보를 표시합니다.

Dism /Image:C:\test\offline /Get-ProvisionedAppxPackages

/Add-ProvisionedAppxPackage

하나 이상의 앱 패키지를 이미지에 추가합니다.

앱은 Windows 이미지에 추가되고, 다음에 사용자가 로그인할 때 각각의 기존 또는 새 사용자 프로필에 등록됩니다. 앱이 온라인 이미지에 추가되면 사용자가 다음에 로그인할 때까지 현재 사용자에 대해 앱이 등록되지 않습니다.

성공적인 설치를 위해 실행 중인 앱이 없도록 하는 동시에 정확히 동일한 파일을 포함하는(디스크 공간 사용을 최소화하기 위해) 앱에 대해 적절한 하드 링크를 만들 수 있도록 앱에 대해 적절한 하드 링크를 만들 수 있도록 감사 모드의 온라인 운영 체제에서 앱을 프로비전합니다.

구문:

dism.exe /Add-ProvisionedAppxPackage {/FolderPath:<App_folder_path> [/SkipLicense\] [/CustomDataPath:<custom_file_path>]  /PackagePath:<main_package_path> [/DependencyPackagePath:<dependency_package_path>] {[/LicensePath:<license_file_path>] [/SkipLicense\]} [/CustomDataPath:<custom_file_path>]} [/Region:<region>]
  • /FolderPath를 사용하여 주 패키지, 종속성 패키지 및 라이선스 파일이 포함된 압축을 푼 앱 파일의 폴더를 지정합니다. 압축을 푼 앱 패키지에만 지원됩니다.

  • /PackagePath를 사용하여 앱 패키지(.appx 또는 .appxbundle)를 지정합니다. LOB(기간 업무) 앱을 온라인으로 프로비전하는 경우 /PackagePath를 사용할 수 있습니다.

    중요

    /PackagePath 매개 변수를 사용하여 .appxbundle 패키지를 프로비전합니다. 또한 종속성 패키지는 /PackagePath를 사용하여 프로비전할 수 없으며 앱에 대한 /DependencyPackagePath 매개 변수를 사용하여 프로비전해야 합니다.

  • /PackagePath는 WinPE(Windows 사전 설치 환경) 4.0, Windows Server 2008 R2 또는 이전 버전의 Windows를 실행하는 호스트 PC에서 지원되지 않습니다.

  • /Region을 사용하여 앱 패키지(.appx 또는 .appxbundle)를 프로비전해야 하는 지역을 지정합니다. 지역 인수는 다음 중 하나일 수 있습니다.

    • all - 모든 지역에 대해 앱을 프로비전해야 함을 나타냅니다. 또는
    • 세미콜론으로 구분된 지역 목록입니다. 지역은 ISO 3166-1 Alpha-2 또는 ISO 3166-1 Alpha-3 코드 형식입니다. 예를 들어 미국은 "US" 또는 "USA"(대/소문자 구분 안 함)로 지정할 수 있습니다. 지역 목록을 지정되지 않으면 패키지가 시작 레이아웃에 고정된 경우에만 앱이 프로비전됩니다.
  • /DependencyPackagePath를 사용하여 앱을 프로비전하는 데 필요한 각 종속성 패키지를 지정합니다. 앱의 필요한 종속성 패키지는 앱의 .appx 패키지 루트에 있는 AppxManifest.xml의 <PackageDependency> 요소를 확인하여 찾을 수 있습니다. 여러 앱이 모두 동일한 종속성을 공유하는 경우 종속성 패키지의 각 주 버전의 최신 부 버전을 설치해야 합니다. 예를 들어 App1, App2 및 App3은 모두 Microsoft.NET.Native.Framework에 종속됩니다. App1은 부 버전이 25512.0인 Microsoft.NET.Native.Framework.1.6을 지정하고, App2는 부 버전이 25513.0인 Microsoft.NET.Native.Framework.1.6을 지정하고, App3은 부 버전이 24202.0인 Microsoft.NET.Native.Framework.1.3을 지정합니다. App1 및 App2는 모두 종속성 패키지의 동일한 주 버전을 지정하므로 최신 부 버전 25513.0만 설치해야 하고, App3은 종속성 패키지의 다른 주 버전을 지정하므로 설치해야 합니다. 따라서 설치해야 하는 종속성 패키지는 부 버전이 25513.0인 Microsoft.NET.Native.Framework.1.6 및 부 버전이 24202.0인 Microsoft.NET.Native.Framework.1.3입니다.

    패키지에 아키텍처별 종속성이 있는 경우 대상 이미지에 대한 종속성에 해당하는 모든 아키텍처를 설치해야 합니다. 예를 들어 x64 대상 이미지에서 x86 및 x64 종속성 패키지에 대한 경로를 모두 포함하거나 압축을 푼 앱 파일의 폴더에 모두 포함합니다. Arm 종속성 패키지가 지정되거나 포함된 경우에도 대상 x64 이미지에 적용되지 않으므로 DISM에서 이를 무시합니다.

    컴퓨터 아키텍처설치할 종속성
    X64x64 및 x86
    x86x86
    ArmArm만
  • /CustomDataPath를 사용하여 앱에 대한 선택적 사용자 지정 데이터 파일을 지정합니다. 파일 이름을 지정할 수 있습니다. 파일이 이미지에 추가되면 파일 이름이 Custom.dat로 바뀝니다.

  • /LicensePath/PackagePath 옵션과 함께 사용하여 애플리케이션 라이선스가 포함된 .xml 파일의 위치를 ​​지정합니다.

  • 사이드로드가 가능한 컴퓨터에서 라이선스가 필요하지 않은 앱에만 /SkipLicense를 사용합니다. 다른 시나리오에서 /SkipLicense를 사용하면 이미지가 손상될 수 있습니다.

:

Dism /Image:C:\test\offline /Add-ProvisionedAppxPackage /FolderPath:c:\Test\Apps\MyUnpackedApp /CustomDataPath:c:\Test\Apps\CustomData.xml
Dism /Online /Add-ProvisionedAppxPackage /PackagePath:C:\Test\Apps\MyPackedApp\MainPackage.appx /DependencyPackagePath:C:\Test\Apps\MyPackedApp\Framework-x86.appx /DependencyPackagePath:C:\Test\Apps\MyPackedApp\Framework-x64.appx /LicensePath:C:\Test\Apps\MyLicense.xml
Dism /Online /Add-ProvisionedAppxPackage /FolderPath:C:\Test\Apps\MyUnpackedApp /SkipLicense
Dism /Image:C:\test\offline /Add-ProvisionedAppxPackage /PackagePath:C:\Test\Apps\MyPackedApp\MainPackage.appxbundle /SkipLicense
Dism /Online /Add-ProvisionedAppxPackage /PackagePath:C:\Test\Apps\MyPackedApp\MainPackage.appxbundle /Region:"all"
Dism /Online /Add-ProvisionedAppxPackage /PackagePath:C:\Test\Apps\MyPackedApp\MainPackage.appxbundle /Region:"US;GB"

/Remove-ProvisionedAppxPackage

이미지에서 앱 패키지(.appx 또는 .appxbundle)에 대한 프로비전을 제거합니다. 앱 패키지는 만든 새 사용자 계정에 등록되지 않습니다.

구문:

/Remove-ProvisionedAppxPackage /PackageName:<PackageName>

중요

패키지가 사용자 프로필에 등록된 경우에만 이 옵션에서 패키지에 대한 프로비전을 제거합니다. 이미지에서 앱을 완전히 제거하려면 PowerShell에서 Remove-AppxPackage cmdlet을 사용하여 이미 등록된 각 사용자에 대한 앱을 제거합니다. 앱이 사용자 프로필에 등록되지 않은 경우 /Remove-ProvisionedAppxPackage 옵션은 패키지를 완전히 제거합니다. 데스크톱 환경이 설치된 Windows Server 2012 이상 이미지에서 앱 패키지를 제거하려면 먼저 데스크톱 환경을 제거한 후에 앱 패키지를 제거해야 합니다. 데스크톱 환경은 Windows Server의 Server Core 설치에 대한 /Remove-ProvisionedAppxPackage 옵션의 요구 사항입니다.

:

Dism /Image:C:\test\offline /Remove-ProvisionedAppxPackage /PackageName:microsoft.devx.appx.app1_1.0.0.0_neutral_ac4zc6fex2zjp

/Optimize-ProvisionedAppxPackages

동일한 파일을 하드 링크로 바꿔 이미지에서 프로비전된 패키지의 총 파일 크기를 최적화합니다. 프로비전된 AppX 패키지가 있는 이미지가 온라인 상태가 되면 /optimize-provisionedappxpackages에서 프로비전된 AppX 패키지를 최적화할 수 없습니다. 이미지를 오프라인으로 전환하고 패키지를 추가하는 경우 이미지가 다시 오프라인으로 전환되면 프로비전된 패키지만 최적화됩니다.

이 명령은 온라인 이미지에 대해 지원되지 않습니다.

DISM.exe /Image:C:\test\offline /Optimize-ProvisionedAppxPackages

/Set-ProvisionedAppxDataFile

사용자 지정 데이터 파일을 지정된 앱 패키지(.appx 또는 .appxbundle)에 추가합니다.

구문

/Set-ProvisionedAppxDataFile [/CustomDataPath<custom_file_path>] /PackageName<PackageName>

이 옵션을 사용하여 사용자 지정 데이터 파일을 추가하기 전에 지정된 앱(.appx 또는 .appxbundle) 패키지가 이미 이미지에 추가되어 있어야 합니다. 또한 /Add-ProvisionedAppxPackage 옵션을 사용하는 경우 사용자 지정 데이터 파일을 추가할 수 있습니다.

  • /CustomDataPath를 사용하여 앱에 대한 선택적 사용자 지정 데이터 파일을 지정합니다. 파일 이름을 지정할 수 있습니다. 파일이 이미지에 추가되면 파일 이름이 Custom.dat로 바뀝니다. Custom.dat 파일이 이미 있는 경우 덮어씁니다.

  • /PackageName을 사용하여 앱 패키지(.appx 또는 .appxbundle)를 지정합니다.

:

DISM.exe /Image:C:\test\offline /Set-ProvisionedAppxDataFile /CustomDataPath:c:\Test\Apps\Custom.dat /PackageName:microsoft.appx.app1_1.0.0.0_neutral_ac4zc6fex2zjp

/StubPackageOption

앱 패키지 서비스 옵션과 함께 사용하여 패키지의 스텁 기본 설정을 지정합니다.

구문:

/StubPackageOption:{installstub | installfull}
  • InstallStub은 프로비전 패키지를 스텁 버전으로 설정합니다. 암시적으로 스텁 기본 설정을 stub(스텁)으로 설정합니다.
  • InstallFull은 프로비전 패키지를 정식 버전으로 설정합니다. 암시적으로 스텁 기본 설정을 full(정식)로 설정합니다.

프로비전된 패키지 버전보다 스텁 패키지 옵션이 지정되지 않은 경우 미리 정의된 스텁 기본 설정으로 설정됩니다.

:

Dism /image:C:\test\offline /add-provisionedappxpackage /packagepath:"C:\dism\stub\appwithresources.appxbundle" /stubpackageoption:installstub

DISM에서 .appxbundle 리소스 패키지를 이미지에 추가하는 방법 이해

.appxbundle이 이미지에 추가되면 번들 내의 모든 리소스 패키지가 적용되지는 않습니다. 예를 들어 앱이 기본 언어가 스페인어(스페인)인 Windows 이미지에 추가되는 경우 프랑스어(프랑스) 리소스가 포함되지 않습니다. 이미지에 추가되는 리소스를 확인하기 위해 패키지 적용 가능성은 다음을 사용하여 결정됩니다.

  • 언어 리소스 팩: 운영 체제 언어가 없으면 해당 앱 언어 리소스 팩이 추가되지 않습니다. 예를 들어 영어(미국)가 기본 언어이고 스페인어(스페인) 언어 팩이 포함된 Windows 10 이미지가 있을 수 있습니다. 영어(미국) 및 스페인어(스페인) 앱 리소스 팩이 이미지에 추가됩니다. 앱 번들에서 프랑스어(프랑스)(또는 다른 언어) 리소스 팩을 사용할 수 있는 경우 추가되지 않습니다.

  • 크기 조정 및 DirectX(DXFL) 리소스 팩: 크기 조정 및 DirectX(DXFL) 리소스 팩은 Windows 디바이스의 하드웨어 구성에 따라 달라집니다. DISM 명령이 실행될 때 대상 하드웨어의 유형을 알 수 없으므로 모든 크기 조정 및 DXFL 리소스 패키지는 프로비전할 때 이미지에 추가됩니다. 크기 조정 리소스를 사용하여 앱을 개발하는 방법에 대한 자세한 내용은 크기를 픽셀 밀도로 조정하기 위한 지침(Microsoft Store 앱)을 참조하세요.

여러 언어 팩이 포함된 이미지의 경우 앱 리소스 패키지는 각 언어의 이미지에 추가됩니다. 첫 번째 사용자가 배포된 이미지가 있는 PC에 로그인하고 사용자가 OOBE 중에 언어를 선택한 경우 사용자 프로필 설정과 일치하지 않는 적용할 수 없는 리소스 패키지(언어 리소스 팩, 크기 조정 리소스 팩 및 DXFL 리소스 패키지) 제거됩니다.

예를 들어 앱은 영어(미국), 프랑스어(프랑스) 및 스페인어(스페인) 언어를 지원할 수 있습니다. 앱을 영어(미국) 및 스페인어(스페인) 언어 팩이 있는 이미지에 추가하면 영어(미국) 및 스페인어(스페인) 리소스 팩만 이미지에 추가됩니다. 그런 다음, 사용자가 처음으로 로그인하고 OOBE 중에 운영 체제 언어로 영어(미국)를 선택하면 로그인이 완료된 후 스페인어(스페인) 리소스 패키지가 제거됩니다.

중요

이미지에서 언어 팩을 추가하거나 제거하는 경우 적용 가능성 컨텍스트가 변경되어 잘못되었거나 불완전한 리소스 패키지 세트가 이미지에 남을 수 있습니다. 언어 팩이 추가되거나 제거되면 모든 .appxbundle 패키지(종속성 패키지 및 Microsoft Store 라이선스 파일 포함)를 이미지에 다시 한 번 추가해야 합니다. 이렇게 하면 올바른 리소스 패키지 세트가 프로비전됩니다.

제한 사항

  • Windows 8 앱을 지원하지 않는 운영 체제에는 앱 패키지(.appx)를 설치할 수 없습니다. Windows 8.1 앱 이상을 지원하지 않는 운영 체제에는 앱 번들 패키지(.appxbundle)를 설치할 수 없습니다. 앱은 WinPE 4.0, Windows Server 2012 Server Core 설치 옵션 또는 Windows 8 및 Windows Server 2012 이전 버전의 Windows에서 지원되지 않습니다.

    Windows Server 2012에서 앱을 설치하고 실행하려면 데스크톱 환경을 설치해야 합니다.

  • /FolderPath 옵션은 .appx 형식을 기반으로 하는 앱 패키지에만 지원됩니다.

  • /PackagePath는 항상 .appxbundle 패키지에 사용해야 합니다.

DISM이란?

DISM 이미지 관리 명령줄 옵션

DISM(배포 이미지 서비스 및 관리) 명령줄 옵션

DISM을 사용하여 앱을 테스트용으로 로드