パッケージ ストレージ ボリューム

パッケージ ボリュームは、ステージング パッケージのWindows管理されたインストール ストアです。 既定のパッケージ ボリュームは通常 C:\Program Files\WindowsApps です。各パッケージ バージョンには、パッケージの完全な名前に基づくディレクトリがあります。

パッケージのボリュームは、サイド バイ サイドのステージングに対応しています。 Windows では、アプリケーションが現在使用しているバージョンを変更することなく、新しいパッケージのバージョンを書き込むことができます。 この設計により、部分的に適用される更新のリスクが軽減されます。

すべてのパッケージがパッケージ ボリュームにステージングされるわけではありません。 開発モードの登録、外部の場所を持つパッケージ、システム パッケージ、およびその場で登録されたレイアウトは、他のストレージ モデルを使用できます。

既定のボリュームと追加ボリューム

Windowsでは、デプロイ操作で別のターゲットが指定されていない場合に、既定のパッケージ ボリュームが使用されます。 他のローカル ドライブ、リムーバブル メディア、またはサポートされているネットワーク ストレージにパッケージ ボリュームを作成できます。

Windows.Management.Deployment.PackageManager API または Appx PowerShell コマンドレットを使用して、パッケージ ボリュームを管理します。

Operation Windows ランタイム API PowerShell
追加する AddPackageVolumeAsync Add-AppxVolume
列挙する GetPackageVolumesAsync Get-AppxVolume
既定値を取得する GetDefaultPackageVolume Get-AppxDefaultVolume
[既定値に設定] SetDefaultPackageVolume Set-AppxDefaultVolume
オフラインに設定する SetPackageVolumeOfflineAsync Dismount-AppxVolume
オンラインに設定 SetPackageVolumeOnlineAsync Mount-AppxVolume
Remove RemovePackageVolumeAsync Remove-AppxVolume

たとえば、PowerShell を使用してパッケージ ボリュームを作成して選択します。

$volume = Add-AppxVolume -Path "Q:\WindowsApps"
Set-AppxDefaultVolume -Volume $volume

ターゲット ボリュームを受け入れるデプロイ API は、個々の操作の既定値をオーバーライドできます。 MovePackageToVolumeAsync または Move-AppxPackage を使用して、サポートされているパッケージを移動することもできます。

オフライン ボリューム

基になるストレージが使用できなくなった場合、Windowsはパッケージ ボリュームとそのパッケージをオフラインにマークします。 たとえば、パッケージ ボリュームを含む USB ドライブを取り外すと、パッケージの PackageOffline 状態が設定されます。

Windowsは、ドライブ文字だけでなく、基になるストレージ メディアによってパッケージ ボリュームを識別します。 別のドライブ文字でリムーバブル記憶域を再接続しても、別のパッケージ ボリューム識別子は作成されません。

セキュリティと暗号化

Windowsは、パッケージ ボリュームの内容を所有し、保護します。 ステージング パッケージ ファイルは不変であり、直接変更しないでください。

Windowsは、システム以外のパッケージ ボリューム内のパッケージ ファイルを暗号化して、ストレージが別のコンピューターに移動された場合に MSIX 整合性の保証を維持します。 この暗号化は、ステージングされたパッケージ ファイルを保護します。BitLocker などのフル ボリューム暗号化に代わるものではありません。

ファイルシステムの機能は異なります。 ハード リンクに依存する機能 (ディスク領域の最適化など) は、ハード リンクをサポートしていないファイル システムでは使用できません。