Opções de manutenção do pacote de aplicativos DISM (.appx ou .appxbundle) Command-Line

Você pode usar comandos de manutenção de pacote de aplicativos para adicionar, remover e listar pacotes de aplicativos provisionados (.appx ou .appxbundle) em uma imagem do Windows. Um .appxbundle é uma coleção de pacotes de aplicativos e recursos usados juntos para enriquecer a experiência do aplicativo, minimizando o volume de disco em um determinado computador. Para obter informações detalhadas sobre pacotes .appxbundle e o pipeline da Microsoft Store, consulte Empacotamento de aplicativos. Somente um subconjunto dos pacotes em um .appxbundle pode ser adicionado à imagem quando um pacote é provisionado usando DISM. Para obter mais informações, consulte Noções básicas sobre como o DISM adiciona pacotes de recursos .appxbundle a uma imagem.

Pacotes de aplicativos provisionados são adicionados a uma imagem do Windows e, em seguida, instalados para cada perfil de usuário novo ou existente na próxima vez que o usuário fizer logon. Para obter mais informações, incluindo requisitos para provisionamento de pacote de aplicativos, consulte Sideload Apps with DISM.

Você também pode usar o PowerShell para adicionar, remover e listar pacotes de aplicativos (.appx ou .appxbundle) por imagem ou por usuário em uma instalação do Windows. Para obter mais informações, consulte Cmdlets dism (Gerenciamento de Manutenção de Imagens de Implantação) no Windows PowerShell e Cmdlets de Instalação de Aplicativo no Windows PowerShell.

Sintaxe de manutenção DISM

A sintaxe base para manutenção de uma imagem do Windows usando DISM é:

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

Opções para imagens offline

As seguintes opções de manutenção do pacote de aplicativos (.appx ou .appxbundle) estão disponíveis para uma imagem offline.

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

Opções para imagens online

As seguintes opções de manutenção do pacote de aplicativos (.appx ou .appxbundle) estão disponíveis para um sistema operacional em execução.

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

/Get-Help /?

Quando usado imediatamente após uma opção de linha de comando de manutenção de pacote de aplicativo, as informações sobre a opção e os argumentos são exibidas. Tópicos adicionais podem ficar disponíveis quando uma imagem é especificada.

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

/Get-ProvisionedAppxPackages

Exibe informações sobre pacotes de aplicativos (.appx ou .appxbundle), em uma imagem, que estão definidas para serem instaladas para cada novo usuário.

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

/Add-ProvisionedAppxPackage

Adiciona um ou mais pacotes de aplicativos à imagem.

O aplicativo será adicionado à imagem do Windows e registrado para cada perfil de usuário existente ou novo na próxima vez que o usuário fizer logon. Se o aplicativo for adicionado a uma imagem online, o aplicativo não será registrado para o usuário atual até a próxima vez que o usuário fizer logon.

Provisione aplicativos em um sistema operacional online no modo auditoria para que os links rígidos apropriados possam ser criados para aplicativos que contêm exatamente os mesmos arquivos (para minimizar o uso de espaço em disco) e, ao mesmo tempo, garantir que nenhum aplicativo esteja em execução para uma instalação bem-sucedida.

Sintaxe:

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>]
  • Use /FolderPath para especificar uma pasta de arquivos de aplicativo descompactados contendo um pacote main, quaisquer pacotes de dependência e o arquivo de licença. Isso só tem suporte para um pacote de aplicativo não empacotado.

  • Use /PackagePath para especificar um pacote de aplicativos (.appx ou .appxbundle). Você pode usar /PackagePath ao provisionar um aplicativo de linha de negócios online.

    Importante

    Use o /PackagePath parâmetro para provisionar pacotes .appxbundle. Além disso, os pacotes de dependência não podem ser provisionados com /PackagePath, eles devem ser provisionados com o /DependencyPackagePath parâmetro para um aplicativo.

  • /PackagePath não há suporte de um computador host que esteja executando o WinPE (Ambiente de Pré-Instalação do Windows) 4.0, o Windows Server 2008 R2 ou uma versão anterior do Windows.

  • Use /Region para especificar em quais regiões um pacote de aplicativo (.appx ou .appxbundle) deve ser provisionado. O argumento region pode ser:

    • all, indicando que o aplicativo deve ser provisionado para todas as regiões ou
    • Uma lista delimitada por ponto e vírgula de regiões. As regiões estarão na forma de códigos ISO 3166-1 Alpha-2 ou ISO 3166-1 Alpha-3. Por exemplo, o Estados Unidos pode ser especificado como "EUA" ou "EUA" (não diferencia maiúsculas de minúsculas). Quando uma lista de regiões não for especificada, o pacote será provisionado somente se ele estiver fixado para iniciar o layout.
  • Use /DependencyPackagePath para especificar cada pacote de desanexação necessário para que o aplicativo seja provisionado. Os pacotes de dependência necessários de um aplicativo podem ser encontrados examinando os <PackageDependency> elementos no AppxManifest.xml na raiz do pacote .appx do aplicativo. Se vários aplicativos compartilharem a mesma dependência, a versão secundária mais recente de cada versão principal do pacote de dependência deverá ser instalada. Por exemplo, App1, App2 e App3 têm uma dependência no Microsoft.NET.Native.Framework. O App1 especifica o Microsoft.NET.Native.Framework.1.6 com a versão secundária 25512.0, o App2 especifica o Microsoft.NET.Native.Framework.1.6 com a versão secundária 25513.0 e o App3 especifica o Microsoft.NET.Native.Framework.1.3 com a versão secundária 24202.0. Como o App1 e o App2 especificam a mesma versão principal do pacote de dependência, apenas a versão secundária mais recente 25513.0 deve ser instalada, enquanto o App3 especifica uma versão principal diferente do pacote de dependência, portanto, ele também deve ser instalado. Portanto, os pacotes de dependência que devem ser instalados são Microsoft.NET.Native.Framework.1.6 com versão secundária 25513.0 e Microsoft.NET.Native.Framework.1.3 com versão secundária 24202.0.

    Se o pacote tiver dependências específicas da arquitetura, você deverá instalar todas as arquiteturas aplicáveis para a dependência na imagem de destino. Por exemplo, em uma imagem de destino x64, inclua um caminho para os pacotes de dependência x86 e x64 ou inclua ambos na pasta de arquivos de aplicativo descompactados. Se o pacote de dependência arm também for especificado ou incluído, o DISM o ignorará, pois ele não se aplica à imagem x64 de destino.

    Arquitetura do computadorDependências a serem instaladas:
    x64x64 e x86
    x86x86
    ArmSomente braço
  • Use /CustomDataPath para especificar um arquivo de dados personalizado opcional para um aplicativo. Você pode especificar qualquer nome de arquivo. O arquivo será renomeado como Custom.dat quando for adicionado à imagem.

  • Use /LicensePath com a opção /PackagePath para especificar o local do arquivo .xml que contém sua licença de aplicativo.

  • /SkipLicense Use somente com aplicativos que não exigem uma licença em um computador habilitado para sideload. Usar /SkipLicense em outros cenários pode comprometer uma imagem.

Exemplos:

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

Remove o provisionamento para pacotes de aplicativos (.appx ou .appxbundle) da imagem. Os pacotes de aplicativos não serão registrados em novas contas de usuário criadas.

Sintaxe:

/Remove-ProvisionedAppxPackage /PackageName:<PackageName>

Importante

Essa opção só removerá o provisionamento de um pacote se ele estiver registrado em qualquer perfil de usuário. Use o cmdlet Remove-AppxPackage no PowerShell para remover o aplicativo para cada usuário ao qual ele já está registrado para remover totalmente o aplicativo da imagem. Se o aplicativo não tiver sido registrado em nenhum perfil de usuário, a opção /Remove-ProvisionedAppxPackage removerá completamente o pacote. Para remover pacotes de aplicativos de um Windows Server 2012 ou posterior, imagem que tenha a Experiência desktop instalada, você deve remover os pacotes de aplicativos antes de remover a Experiência desktop. A Experiência da Área de Trabalho é um requisito da opção /Remove-ProvisionedAppxPackage para instalações do Server Core do Windows Server.

Exemplo:

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

/Optimize-ProvisionedAppxPackages

Otimiza o tamanho total do arquivo de pacotes provisionados na imagem substituindo arquivos idênticos por hardlinks. Depois que uma imagem com pacotes AppX provisionados estiver online, /optimize-provisionedappxpackages não será possível otimizar pacotes AppX provisionados. Se você deixar uma imagem offline e adicionar pacotes, somente os pacotes provisionados depois que a imagem for colocada offline serão otimizados.

Não há suporte para esse comando em relação a uma imagem online.

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

/Set-ProvisionedAppxDataFile

Adiciona um arquivo de dados personalizado ao pacote de aplicativo especificado (.appx ou .appxbundle).

Sintaxe

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

O pacote do aplicativo especificado (.appx ou .appxbundle) já deve ser adicionado à imagem antes de adicionar o arquivo de dados personalizado com essa opção. Você também pode adicionar um arquivo de dados personalizado ao usar a opção /Add-ProvisionedAppxPackage .

  • Use /CustomDataPath para especificar um arquivo de dados personalizado opcional para um aplicativo. Você pode especificar qualquer nome de arquivo. O arquivo será renomeado como Custom.dat quando for adicionado à imagem. Se um arquivo Custom.dat já existir, ele será substituído.

  • Use /PackageName para especificar um pacote de aplicativo (.appx ou .appxbundle).

Exemplo:

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

Usado em conjunto com opções de manutenção de pacote de aplicativo para especificar a preferência de stub do pacote.

Sintaxe:

/StubPackageOption:{installstub | installfull}
  • InstallStub define o pacote de provisionamento para a versão stub. Define implicitamente a preferência de stub como stub.
  • InstallFull define o pacote de provisionamento para provisionar a versão completa. Define implicitamente a preferência de stub como completa.

Se nenhuma opção de pacote stub for especificada, a versão do pacote provisionada será definida como as preferências de stub predefinidas.

Exemplo:

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

Noções básicas sobre como o DISM adiciona pacotes de recursos .appxbundle a uma imagem

Quando um .appxbundle é adicionado à imagem, nem todos os pacotes de recursos dentro do pacote são aplicáveis. Por exemplo, se um aplicativo estiver sendo adicionado a uma imagem do Windows com um idioma padrão espanhol (Espanha), os recursos de francês (França) não deverão ser incluídos. Para determinar quais recursos são adicionados à imagem, a aplicabilidade do pacote é determinada usando:

  • Pacotes de Recursos de Idioma: se um idioma do sistema operacional não estiver presente, o pacote de recursos de idioma do aplicativo correspondente não será adicionado. Por exemplo, você pode ter uma imagem que é uma Windows 10 com inglês (EUA) como o idioma padrão e um pacote de idiomas espanhol (Espanha) incluído. Os pacotes de recursos do aplicativo inglês (EUA) e espanhol (Espanha) serão adicionados à imagem. Se um pacote de recursos francês (França) (ou qualquer outro idioma) estiver disponível no pacote do aplicativo, ele não será adicionado.

  • Pacotes de recursos de Escala e DirectX (DXFL): os pacotes de recursos de Escala e DirectX (DXFL) dependem da configuração de hardware do dispositivo Windows. Como o tipo de hardware de destino não pode ser conhecido no momento em que os comandos DISM são executados, todos os pacotes de recursos de escala e DXFL são adicionados à imagem no momento do provisionamento. Para obter mais informações sobre como desenvolver um aplicativo com recursos de dimensionamento, consulte Diretrizes para dimensionamento para densidade de pixels (aplicativos da Microsoft Store).

Para uma imagem que contém vários pacotes de idiomas, os pacotes de recursos do aplicativo serão adicionados à imagem para cada idioma. Depois que o primeiro usuário entrar no computador com a imagem implantada e o usuário tiver escolhido um idioma durante o OOBE, os pacotes de recursos inaplicáveis (pacotes de recursos de idioma, pacotes de recursos de escala e pacotes de recursos DXFL) que não correspondem às configurações de perfil do usuário serão removidos.

Por exemplo, um aplicativo pode dar suporte aos idiomas inglês (EUA), francês (França) e espanhol (Espanha). Se o aplicativo for adicionado a uma imagem com pacotes de idiomas em inglês (EUA) e espanhol (Espanha) presentes, somente os pacotes de recursos em inglês (EUA) e espanhol (Espanha) serão adicionados à imagem. Em seguida, se um usuário entrar pela primeira vez e, durante o OOBE, selecionar inglês (EUA) como idioma do sistema operacional, os pacotes de recursos espanhol (Espanha) serão removidos após a conclusão da entrada.

Importante

Se você adicionar ou remover um pacote de idiomas de uma imagem, altere o contexto de aplicabilidade que pode resultar em deixar um conjunto incorreto ou incompleto de pacotes de recursos na imagem. Quando um pacote de idiomas é adicionado ou removido, você deve, mais uma vez, adicionar todos os pacotes .appxbundle (incluindo quaisquer pacotes de dependência e arquivo de licença da Microsoft Store) à imagem. Isso garantirá que o conjunto correto de pacotes de recursos seja provisionado.

Limitações

  • Não é possível instalar um pacote de aplicativos (.appx) em um sistema operacional que não dá suporte a aplicativos Windows 8. Não é possível instalar um pacote de pacote de aplicativos (.appxbundle) em um sistema operacional que não dá suporte a pelo menos Windows 8.1 aplicativos. Não há suporte para aplicativos no WinPE 4.0, na opção de instalação do Windows Server 2012 Server Core ou em versões do Windows com mais de Windows 8 e Windows Server 2012.

    Para instalar e executar aplicativos no Windows Server 2012, você deve instalar a Experiência Desktop.

  • A opção /FolderPath só tem suporte para pacotes de aplicativos com base no formato .appx.

  • /PackagePath sempre deve ser usado para pacotes .appxbundle.

O que é DISM?

Opções da Linha de Comando de Gerenciamento de Imagem do DISM

Opções da Linha de Comando de DISM (Gerenciamento e Manutenção de Imagens de Implantação)

Realizar o sideload de aplicativos com o DISM