Параметры Command-Line обслуживания пакета приложений DISM (APPX или APPXbundle)

Команды обслуживания пакетов приложений можно использовать для добавления, удаления и перечисления подготовленных пакетов приложений (.appx или .appxbundle) в образе Windows. APPXbundle — это коллекция пакетов приложений и ресурсов, которые используются вместе для обогащения возможностей приложения, минимизируя при этом дисковое пространство на данном компьютере. Подробные сведения о пакетах .appxbundle и конвейере Microsoft Store см. в статье Упаковка приложений. При подготовке пакета с помощью DISM в образ может быть добавлено только подмножество пакетов в appxbundle. Дополнительные сведения см. в разделе Общие сведения о том, как DISM добавляет пакеты ресурсов .appxbundle в образ.

Подготовленные пакеты приложений добавляются в образ Windows, а затем устанавливаются для каждого нового или существующего профиля пользователя при следующем входе пользователя. Дополнительные сведения, включая требования к подготовке пакетов приложений, см. в разделе Загрузка неопубликованных приложений с помощью DISM.

PowerShell также можно использовать для добавления, удаления и перечисления пакетов приложений (APPX или APPXbundle) для каждого образа или пользователя в установке Windows. Дополнительные сведения см. в разделах Командлеты управления обслуживанием образов развертывания (DISM) в Windows PowerShell и Командлеты установки приложений в Windows PowerShell.

Синтаксис обслуживания DISM

Базовый синтаксис для обслуживания образа Windows с помощью DISM:

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 чтобы указать папку распакованых файлов приложения, содержащую пакет main, все пакеты зависимостей и файл лицензии. Это поддерживается только для распакованого пакета приложения.

  • Используйте /PackagePath для указания пакета приложения (APPX или APPXBUNDLE). Вы можете использовать /PackagePath при подготовке бизнес-приложения через Интернет.

    Важно!

    Используйте параметр для подготовки /PackagePath пакетов APPXbundle. Кроме того, пакеты зависимостей не могут быть подготовлены с /PackagePathпомощью , они должны быть подготовлены /DependencyPackagePath с параметром для приложения.

  • /PackagePath не поддерживается на хост-компьютере под управлением среды предустановки Windows (WinPE) 4.0, Windows Server 2008 R2 или более ранней версии Windows.

  • Используется /Region для указания регионов, в которые должен быть подготовлен пакет приложения (APPX или APPXBUNDLE). Аргумент region может быть следующим:

    • all, указывающее, что приложение должно быть подготовлено для всех регионов, или
    • Разделенный точкой с запятой список регионов. Регионы будут иметь формат iso 3166-1 Alpha-2 или ISO 3166-1 Alpha-3. Например, США можно указать как "US" или "США" (без учета регистра). Если список регионов не указан, пакет будет подготовлен только в том случае, если он закреплен в начальном макете.
  • Используйте , /DependencyPackagePath чтобы указать каждый пакет депенсентности, необходимый для подготовки приложения. Необходимые пакеты зависимостей приложения можно найти, просмотрев <PackageDependency> элементы в AppxManifest.xml в корне пакета APPX приложения. Если несколько приложений используют одну и ту же зависимость, необходимо установить последнюю дополнительную версию каждой основной версии пакета зависимостей. Например, App1, App2 и App3 имеют зависимость от Microsoft.NET.Native.Framework. App1 указывает Microsoft.NET.Native.Framework.1.6 с дополнительной версией 25512.0, App2 — Microsoft.NET.Native.Framework.1.6 с дополнительной версией 25513.0, а App3 — Microsoft.NET.Native.Framework.1.3 с дополнительным номером версии 24202.0. Так как и App1, и App2 указывают одну и ту же основную версию пакета зависимостей, следует установить только последнюю дополнительную версию 25513.0, а App3 — другую основную версию пакета зависимостей, поэтому ее также необходимо установить. Поэтому пакеты зависимостей, которые должны быть установлены: Microsoft.NET.Native.Framework.1.6 с дополнительной версией 25513.0 и Microsoft.NET.Native.Framework.1.3 с дополнительной версией 24202.0.

    Если пакет имеет зависимости, относящиеся к архитектуре, необходимо установить все применимые архитектуры для зависимости от целевого образа. Например, в целевом образе x64 включите путь к пакетам зависимостей x86 и x64 или включите их в папку распакованых файлов приложения. Если пакет зависимостей Arm также указан или включен, DISM проигнорирует его, так как он не применяется к целевому образу x64.

    Архитектура компьютераУстанавливаемая зависимость:
    X64x64 и x86
    x86x86
    ArmТолько arm
  • Используйте /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>

Важно!

Этот параметр удалит подготовку пакета, только если он зарегистрирован в любом профиле пользователя. Используйте командлет Remove-AppxPackage в PowerShell, чтобы удалить приложение для каждого пользователя, на который оно уже зарегистрировано, чтобы полностью удалить приложение из образа. Если приложение не зарегистрировано ни в одном профиле пользователя, /Remove-ProvisionedAppxPackage параметр полностью удалит пакет. Чтобы удалить пакеты приложений из образа Windows Server 2012 или более поздней версии, на котором установлен интерфейс рабочего стола, необходимо удалить пакеты приложений перед удалением возможностей рабочего стола. Возможности рабочего стола являются обязательным требованием /Remove-ProvisionedAppxPackage для установки основных серверных компонентов Windows Server.

Пример:

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

/Optimize-ProvisionedAppxPackages

Оптимизирует общий размер файлов подготовленных пакетов на изображении, заменяя идентичные файлы жесткими ссылками. После подключения образа с подготовленными пакетами /optimize-provisionedappxpackages AppX не сможет оптимизировать подготовленные пакеты 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 задает для пакета подготовки версию заглушки. Неявно задает предпочтение заглушки.
  • 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, все пакеты ресурсов scale и DXFL добавляются в образ во время подготовки. Дополнительные сведения о разработке приложения с ресурсами масштабирования см. в статье Рекомендации по масштабированию до плотности пикселей (приложения Microsoft Store).

Для изображения, содержащего несколько языковых пакетов, пакеты ресурсов приложения будут добавлены в образ для каждого языка. После того как первый пользователь войдет на компьютер с развернутым образом и он выбрал язык во время запуска при первом включении компьютера, неприменимые пакеты ресурсов (языковые пакеты ресурсов, масштабируемые пакеты ресурсов и пакеты ресурсов DXFL), которые не соответствуют параметрам профиля пользователя, удаляются.

Например, приложение может поддерживать английский (США), французский (Франция) и испанский (Испания). Если приложение добавляется в изображение с языковыми пакетами английского (США) и испанского (Испания), в образ будут добавлены только пакеты ресурсов для английского (США) и испанского (Испания). Затем, если пользователь впервые входит в систему и во время запуска при первом запуске выбирает английский (США) в качестве языка операционной системы, пакеты ресурсов для испанского языка (Испания) будут удалены после завершения входа.

Важно!

При добавлении или удалении языкового пакета из образа изменяется контекст применимости, что может привести к тому, что в образе остается неправильный или неполный набор пакетов ресурсов. При добавлении или удалении языкового пакета необходимо еще раз добавить в образ все пакеты APPXbundle (включая все пакеты зависимостей и файл лицензии Microsoft Store). Это обеспечит подготовку правильного набора пакетов ресурсов.

Ограничения

  • Пакет приложения (APPX) нельзя установить в операционной системе, которая не поддерживает Windows 8 приложения. Пакет пакета приложений (.appxbundle) нельзя установить в операционной системе, которая не поддерживает по крайней мере Windows 8.1 приложений. Приложения не поддерживаются в WinPE 4.0, параметре установки Windows Server 2012 Server Core или в любых версиях Windows старше Windows 8 и Windows Server 2012.

    Чтобы установить и запустить приложения на Windows Server 2012, необходимо установить возможности рабочего стола.

  • Параметр /FolderPath поддерживается только для пакетов приложений в формате APPX.

  • /PackagePath всегда должен использоваться для пакетов APPXbundle.

Что такое DISM?

Параметры управления образами DISM Command-Line

Варианты обслуживания образов развертывания и управления ими (DISM) Command-Line

Sideload Apps with DISM (Загрузка неопубликованных приложений с помощью DISM)