共有パッケージ コンテナー

共有パッケージ コンテナーを使用すると、IT のプロはパッケージ アプリケーション用に共有ランタイム コンテナーを作成できます。仮想ファイル システムの統合されたビューと仮想レジストリを共有し、別のパッケージのルート ファイルと状態にアクセスできるようになります。 Windows 10 Insider Preview ビルド 21354 以降では、IT 担当者は、レガシ インストーラーからの MSIX の変換に重要となるコンテナーに含め得るどのアプリでも管理できるようになります。 共有コンテナーの概念は、主にカスタマイズ、必要なソフトウェアの共有、変換されたアプリのアドオンのサポートに使用されます。 これはエンタープライズ専用の機能であり、使用するには管理者特権が必要です。

共有パッケージ コンテナーの操作は、アプリのデプロイ操作とは独立しています。 つまり、デバイスにデプロイされるパッケージ コンテナー定義を共有する前に、アプリをインストールする必要はありません。 これは、共有パッケージ コンテナーを実行するために、共有パッケージ内で定義されているすべてのアプリをインストールする必要があるわけではないということでもあります。 共有パッケージ コンテナー内のアプリは、共有パッケージ コンテナーの定義を変更することなく、個別に更新できます。

アプリは 1 つのコンテナー内でのみ許可されることにご注意ください。 既に共有パッケージ コンテナーの一部となっているアプリを含む共有パッケージ コンテナーをデプロイすると、エラーが発生します。

前提条件

この機能を使用するには、企業にデバイスの管理者が必要です。 また、パッケージはすべて .msix パッケージである必要があります。 インストーラーを MSIX パッケージとしてパッケージ化するには、「既存のインストーラーからパッケージを作成する」ドキュメントをご覧ください。

共有パッケージ コンテナーの定義

共有パッケージ コンテナーは、.xml ファイルによって定義されます。 コンテナー定義には、一意の名前と、そのコンテナーに属するパッケージの一覧が必要です。 .xml には、メイン パッケージのみを含める必要があります。 省略可能なパッケージと変更パッケージは、メイン パッケージと同じコンテナーを既に共有しているため、共有パッケージ コンテナーに自動的に含められます。 パッケージの優先順位は、一覧の上から下に設定されます。 つまり、最上位のパッケージの優先順位が最も高くなります。 パッケージの優先度は、同じファイルを持つ可能性のあるパッケージ間の競合の解決に使用されます。 サンプルの一例を次に示します。

<?xml version="1.0" encoding="utf-8"?> 
<AppSharedPackageContainer Name="ContosoContainer"> 
  <PackageFamily Name="Fabrikam.MainApp_8wekyb3d8bbwe"/> 
  <PackageFamily Name="Contoso.MainApp_8wekyb3d8bbwe"/> 
  <PackageFamily Name="ContosoCustomize_7xekyb3d8ccde"/> 
</AppSharedPackageContainer>   

コンテナー定義の .xml があるとき、次の PowerShell コマンドを使用して、デバイスから共有パッケージ コンテナーをデプロイ、リセット、更新、削除できます。 他のすべてのアプリ デプロイ コマンドは同じままであることにご注意ください (つまり、パッケージのインストール)

PowerShell コマンド

共有パッケージ コンテナー定義をデプロイする

Add-AppSharedPackageContainer <path> 

このコマンドは、特定のユーザーの共有パッケージ コンテナー定義をデプロイします。 省略可能なパラメーターは次のとおりです。

パラメーター 説明
ForceApplicationShutdown 共有パッケージ コンテナーで現在実行中のすべてのパッケージを閉じます。

共有パッケージ コンテナーを削除する

Remove-AppSharedPackageContainer -Name <name>  

このコマンドは、特定のユーザーの共有パッケージ コンテナー定義を削除します。 省略可能なパラメーターは次のとおりです。

パラメーター 説明
ForceApplicationShutdown 共有パッケージ コンテナー内のすべてのパッケージを閉じます。

共有パッケージコンテナーに関する情報を取得する

Get-AppSharedPackageContainer -Name <name> 

このコマンドは、共有パッケージ コンテナーに関する情報を取得します。 特に、共有パッケージ コンテナー内にあるパッケージが表示されます。

共有パッケージ コンテナーをリセットする

Reset-AppSharedPackageContainer -Name <name>  

このコマンドは、仮想ファイルとレジストリ キーを含む、コンテナーのすべてのアプリケーション データを破棄します。