DISM 應用程式套件 (.appx 或 .appxbundle) 服務Command-Line選項

您可以使用應用程式套件服務命令,在 Windows 映像中新增、移除和列出布建的應用程式套件 (.appx 或 .appxbundle) 。 .appxbundle 是應用程式和資源套件的集合,用來擴充應用程式體驗,同時將指定電腦上的磁片使用量降至最低。 如需 .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) 。 您可以在線上布建企業營運應用程式時使用 /PackagePath

    重要

    /PackagePath使用 參數來布建 .appxbundle 套件。 此外,無法使用 /PackagePath 布建相依性套件,它們必須使用 /DependencyPackagePath 應用程式的 參數進行布建。

  • /PackagePath 不支援執行 Windows 預先安裝環境的主機電腦, (WinPE) 4.0、Windows Server 2008 R2 或舊版 Windows。

  • 用來 /Region 指定必須布建應用程式套件 (.appx 或 .appxbundle) 的區域。 區域引數可以是:

    • all,表示應該為所有區域布建應用程式,或
    • 以分號分隔的區域清單。 區域的格式為 ISO 3166-1 Alpha-2 或 ISO 3166-1 Alpha-3 代碼。 例如,美國可以指定為 「US」 或 「USA」 (不區分大小寫) 。 未指定區域清單時,只有當套件釘選為開始配置時,才會布建套件。
  • 使用 /DependencyPackagePath 來指定布建應用程式所需的每個相依性套件。 您可以藉由查看 <PackageDependency> 應用程式之 .appx 套件根目錄中AppxManifest.xml中的元素,找到應用程式的必要相依性套件。 如果多個應用程式都共用相同的相依性,則應該安裝每個相依性套件主要版本的最新次要版本。 例如,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 指定不同的相依性套件主要版本,因此也必須安裝。 因此,應該安裝的相依性套件為 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>

重要

此選項只會在套件註冊至任何使用者設定檔時移除該套件的布建。 使用 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 會將布建套件設定為存根版本。 以隱含方式將存根喜好設定設定為存根。
  • InstallFull 會將布建套件設定為布建完整版本。 以隱含方式將存根喜好設定設為 full。

如果未指定任何存根套件選項,則會將布建的套件版本設定為預先定義的存根喜好設定。

範例

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

瞭解 DISM 如何將 .appxbundle 資源套件新增至映射

將 .appxbundle 新增至映射時,並非套件組合內的所有資源套件都適用。 例如,如果將應用程式新增至西班牙文 (西班牙) 預設語言的 Windows 映像,則不應該包含法文 (法國) 資源。 若要判斷哪些資源新增至映射,套件適用性是使用下列方式來決定:

  • 語言資源套件:如果作業系統語言不存在,則不會新增對應的應用程式語言資源套件。 例如,您可能有一個影像,其為Windows 10,其中包含英文 (美國) 作為預設語言,以及包含西班牙文 (西班牙) 語言套件。 英文 (美國) 和西班牙文 (西班牙) 應用程式資源套件將會新增至映射。 如果法文 (法國) 資源套件 (或任何其他語言) 可在應用程式套件組合中使用,則不會新增。

  • Scale 和 DirectX (DXFL) Resource Pack:Scale 和 DirectX (DXFL) 資源套件取決於 Windows 裝置的硬體設定。 因為執行 DISM 命令時無法得知目標硬體的類型,所以所有縮放和 DXFL 資源套件都會在布建時新增至映射。 如需使用縮放資源開發應用程式的詳細資訊,請參閱 調整為圖元密度的指導方針, (Microsoft Store 應用程式)

對於包含多個語言套件的映射,應用程式資源套件將會新增至每個語言的映射。 一旦第一位使用者已使用已部署的映射登入電腦,且使用者在 OOBE 期間已選擇語言之後,即會移除不套用的資源套件、 (語言資源套件、調整資源套件和 DXFL 資源套件,) 不符合使用者設定檔設定。

例如,應用程式可能支援英文 (美國) 、法文 (法國) ,以及西班牙文 (西班牙) 語言。 如果應用程式新增至具有英文 (美國) 和西班牙文 (西班牙) 語言套件的影像,則只會將英文 (美國) 和西班牙文 (西班牙) 資源套件新增至影像。 然後,如果使用者第一次登入,並在 OOBE 期間選取英文 (US) 作為其作業系統語言,則會在登入完成之後移除西班牙文 (西班牙) 資源套件。

重要

如果您從映射新增或移除語言套件,您可以變更適用性內容,這可能會導致映射中保留不正確的或不完整的資源套件集。 新增或移除語言套件時,您必須再次將所有 .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 側載應用程式