この記事では、自動バックアップ機能と修復機能を備えた 関連セット を定義するアプリ インストーラー ファイルを手動で作成する方法について説明します。 関連するセットは 1 つのエンティティではなく、メイン パッケージとオプション パッケージの組み合わせです。
関連するセットを 1 つのエンティティとしてインストールできるようにするには、メイン パッケージとオプション パッケージを 1 つとして指定できる必要があります。 これを行うには、. appinstaller 拡張子を持つ XML ファイルを作成して、関連するセットを定義する必要があります。 アプリ インストーラーは *.appinstaller ファイルを使用し、ユーザーが 1 回のクリックですべての定義済みパッケージをインストールできるようにします。
デプロイ時に、アプリ インストーラー ファイルは次の処理を行います。
MainPackage 要素の 属性で参照される Windows アプリ パッケージは、ターゲットの Windows アプリ パッケージの 、 、 属性を検証します。 Windows アプリ パッケージ マニフェストの Package/Identity 要素が一致しない場合、インストールは失敗します。 - パッケージのファミリの更新 URI と修復 URI への参照を作成します。
アプリ インストーラー ファイルを作成する方法
関連するセットを 1 つのエンティティとして配布するには、そのアプリ インストーラー スキーマに必要な要素を含む アプリ インストーラー ファイルを作成する必要があります。
- *.AppInstaller ファイルを作成します。
- アプリ インストーラー ファイルの属性を指定します。
- メインWindowsアプリパッケージを指定します。
- 関連するセットのオプション パッケージを指定します。
- Windowsアプリの依存フレームワークパッケージを指定します。
- 更新設定を指定します。
- 更新 URI パスを指定します。
- 修復 URI パスを指定します。
アプリ インストーラー ファイルの例
上記の手順に従って、次のようなアプリ インストーラー ファイルが正常に作成されます。
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2"
Version="1.0.0.0"
Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >
<MainBundle
Name="Contoso.MainApp"
Publisher="CN=Contoso"
Version="2.23.12.43"
Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />
<OptionalPackages>
<Bundle
Name="Contoso.OptionalApp1"
Publisher="CN=Contoso"
Version="2.23.12.43"
Uri="http://mywebservice.azurewebsites.net/OptionalApp1.msixbundle" />
<Bundle
Name="Contoso.OptionalApp2"
Publisher="CN=Contoso"
Version="2.23.12.43"
Uri="http://mywebservice.azurewebsites.net/OptionalApp2.msixbundle" />
<Package
Name="Fabrikam.OptionalApp3"
Publisher="CN=Fabrikam"
Version="10.34.54.23"
Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix"
ProcessorArchitecture="x64" />
</OptionalPackages>
<UpdateURIs>
<UpdateURI>http://mywebservice.azurewebsites.net/appset.appinstaller</UpdateURI>
<UpdateURI>http://mywebservice2.azurewebsites.net/appset.appinstaller</UpdateURI>
</UpdateURIs>
<RepairURIs>
<RepairURI>http://mywebservice.azurewebsites.net/appset.appinstaller</RepairURI>
<RepairURI>http://mywebservice2.azurewebsites.net/appset.appinstaller</RepairURI>
</RepairURIs>
<UpdateSettings>
<OnLaunch HoursBetweenUpdateChecks="0"/>
</UpdateSettings>
</AppInstaller>
手順 1: *.appinstaller ファイルを作成する
テキスト エディター (Notepad.exe) を使用して、ファイル名拡張子が *の新しいファイルを作成します。AppInstaller
方法:
- スタート メニューを開きます。
- 「
notepad.exe」と入力します。 - [ファイル] メニューを開きます。
- ドロップダウン メニューから [名前を付けて保存] を選択します。
手順 2: 基本テンプレートを追加する
アプリ インストーラー ファイルのバージョン、パス、ネットワークの場所を示す AppInstaller 要素をアプリ インストーラー ファイルに含めます。 関連付けられているWindows アプリをインストールするときに、AppInstaller 要素内の情報が使用されます。
| 要素 | 説明 |
|---|---|
| xmlns | XML 名前空間 |
| バージョン | 4 つのドットで区切られた形式 (1.0.0.0) のアプリインストーラー ファイルのバージョン。 |
| URI | デバイスからアクセスできる現在のアプリ インストーラー ファイルへの URI パス。 |
方法:
手順 1 で作成したファイルを開きます。
次の XML コンテンツを *AppInstaller ファイルにコピーします。
<?xml version="1.0" encoding="utf-8"?> <AppInstaller xmlns="http://schemas.microsoft.com/appx/appinstaller/2021" Version="" Uri="" > </AppInstaller>Version属性をアプリ インストーラー ファイルのバージョンで更新するURI属性を、この .AppInstaller ファイルがアクセス可能となるネットワーク上の場所で更新してください。
手順 3: メイン パッケージ情報を追加する
<MainPackage> と <MainBundle> は、アプリ インストーラー ファイルを使用してインストールされるプライマリ Windows アプリを識別するために使用されます。 Windows アプリ インストーラーが *<MainPackage> または *.appx である場合、が使用されます。 Windows アプリ インストーラーがバンドルされたWindows アプリ インストーラーであり、拡張子が *<MainBundle>、または *.appxbundle である場合は、を使用します。
| 要素 | 説明 |
|---|---|
| 名前 | アプリ インストーラー ファイルを介して配布されるプライマリ アプリケーションの名前。 これは、次の PowerShell コマンドレットを実行して見つけることができます: $(Get-AppxPackage [AppName]).Name。 |
| 出版社 | プライマリ Windows アプリ インストーラーへの署名に使用される発行元証明書の正規名。 これは、次の PowerShell コマンドレットを実行して見つけることができます: $(Get-AppxPackage [AppName]).Publisher。 |
| バージョン | 四点形式 (1.0.0.0) のプライマリ Windows アプリインストーラーのバージョン。 これは、次の PowerShell コマンドレットを実行して見つけることができます: $(Get-AppxPackage [AppName]).Version。 |
| プロセッサーアーキテクチャ | プライマリ Windows アプリ インストーラーがインストールするアーキテクチャ。 |
| URI | プライマリ Windows アプリ インストール メディアへの URI パス。 |
<MainBundle>属性または<MainPackage>属性の情報は、アプリ バンドル マニフェストまたはアプリ パッケージ マニフェストの Package/Identity 要素とそれぞれ一致する必要があります。
Windows アプリ インストーラー
メイン アプリ パッケージが .msix または.appx ファイルの場合は、次に示すように <MainPackage>を使用します。 バンドル以外のパッケージでは必須であるため、ProcessorArchitecture を必ず含めるようにしてください。
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
Version="1.0.0.0"
Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >
<MainPackage
Name="Contoso.MainApp"
Publisher="CN=Contoso"
Version="2.23.12.43"
ProcessorArchitecture="x64"
Uri="http://mywebservice.azurewebsites.net/mainapp.msix" />
</AppInstaller>
Windows アプリ バンドル インストーラー
メイン アプリ パッケージが .msixbundle または .appxbundle またはファイルである場合は、次に示すように、<MainBundle>の代わりに<MainPackage>を使用します。 バンドルの場合、ProcessorArchitecture は必要ありません。
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
Version="1.0.0.0"
Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >
<MainBundle
Name="Contoso.MainApp"
Publisher="CN=Contoso"
Version="2.23.12.43"
Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />
</AppInstaller>
手順 4: 省略可能なパッケージを追加する
メイン アプリ パッケージ属性と同様に、省略可能なパッケージをアプリ パッケージまたはアプリ バンドルにできる場合は、 <OptionalPackages> 属性内の子要素をそれぞれ <Package> または <Bundle> する必要があります。 子要素のパッケージ情報は、バンドルまたはパッケージ マニフェストの ID 要素と一致する必要があります。
| 要素 | 説明 |
|---|---|
| 名前 | App Installer ファイルを介して配布される省略可能なアプリケーションの名前。 これは、次の PowerShell コマンドレットを実行して見つけることができます: $(Get-AppxPackage [AppName]).Name。 |
| 出版社 | オプションのWindows アプリ インストーラーへの署名に使用される発行元証明書の正規名。 これは、次の PowerShell コマンドレットを実行して見つけることができます: $(Get-AppxPackage [AppName]).Publisher。 |
| バージョン | オプションのWindowsアプリインストーラーのバージョン (クアッドダット記法 1.0.0.0) 。 これは、次の PowerShell コマンドレットを実行して見つけることができます: $(Get-AppxPackage [AppName]).Version。 |
| プロセッサーアーキテクチャ | オプションのWindows アプリ インストーラーがインストールするアーキテクチャ。 |
| URI | プライマリ Windows アプリ インストール メディアへの URI パス。 |
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
Version="1.0.0.0"
Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >
<MainBundle
Name="Contoso.MainApp"
Publisher="CN=Contoso"
Version="2.23.12.43"
Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />
<OptionalPackages>
<Bundle
Name="Contoso.OptionalApp1"
Publisher="CN=Contoso"
Version="2.23.12.43"
Uri="http://mywebservice.azurewebsites.net/OptionalApp1.msixbundle" />
<Package
Name="Fabrikam.OptionalApp3"
Publisher="CN=Fabrikam"
Version="10.34.54.23"
ProcessorArchitecture="x64"
Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix" />
</OptionalPackages>
</AppInstaller>
手順 5: 依存関係を追加する
dependencies 要素では、メイン パッケージまたはオプション パッケージに必要なフレームワーク パッケージを指定できます。
| 要素 | 説明 |
|---|---|
| 名前 | アプリ インストーラー ファイルを介して配布される依存関係アプリケーションの名前。 これは、次の PowerShell コマンドレットを実行して見つけることができます: $(Get-AppxPackage [AppName]).Name。 |
| パブリッシャー | アプリ インストーラー Windows依存関係の署名に使用される発行元証明書の正規名。 これは、次の PowerShell コマンドレットを実行して見つけることができます: $(Get-AppxPackage [AppName]).Publisher。 |
| バージョン | 依存関係であるWindowsアプリインストーラーのバージョンは、四つの点で区切られた表記 (1.0.0.0) です。 これは、次の PowerShell コマンドレットを実行して見つけることができます: $(Get-AppxPackage [AppName]).Version。 |
| プロセッサーアーキテクチャ | 依存関係Windowsアプリ インストーラーがインストールするアーキテクチャ。 |
| URI | Windowsアプリの依存関係のインストールメディアへのURIパス。 |
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
Version="1.0.0.0"
Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >
<MainBundle
Name="Contoso.MainApp"
Publisher="CN=Contoso"
Version="2.23.12.43"
Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />
<Dependencies>
<Package
Name="Microsoft.VCLibs.140.00"
Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"
Version="14.0.24605.0" ProcessorArchitecture="x86" Uri="http://foobarbaz.com/fwkx86.appx" />
<Package
Name="Microsoft.VCLibs.140.00"
Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"
Version="14.0.24605.0"
ProcessorArchitecture="x64"
Uri="http://foobarbaz.com/fwkx64.appx" />
</Dependencies>
</AppInstaller>
手順 6: 更新設定を追加する
アプリ インストーラー ファイルでは、更新設定を指定して、新しいアプリ インストーラー ファイルが発行されたときに関連するセットを自動的に更新することもできます。 <UpdateSettings> は省略可能な要素です。 < 内で> OnLaunch オプションはアプリの起動時に更新チェックを行う必要があることを指定し、HoursBetweenUpdateChecks="12" は更新チェックを 12 時間ごとに行う必要があることを指定します。 HoursBetweenUpdateChecks が指定されていない場合、更新プログラムのチェックに使用される既定の間隔は 24 時間です。 バックグラウンド更新などの追加の種類の更新は、更新設定スキーマで確認できます。プロンプトを使用した更新など、起動時のその他の更新プログラムの種類は、OnLaunch スキーマで確認できます
| 元素 | 説明 |
|---|---|
| 更新確認間隔 (時間単位) | Windowsアプリの更新チェック間隔の最小値を定義します。 |
| アップデートブロックのアクティベーション | アプリの更新がチェックされる場合のエクスペリエンスを定義します。 |
| プロンプトを表示 | 更新プログラムをインストールするとき、および更新プログラムをチェックするときにウィンドウを表示するかどうかを定義します。 |
| すべてのバージョンから強制的に更新する | アプリケーションの次のバージョンが新しいバージョンまたは古いバージョンであることを指定します。 True の場合、両方に対してすべて有効になります。False (既定値) の場合、新しいバージョンのみがインストールされます。 |
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
Version="1.0.0.0"
Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >
<MainBundle
Name="Contoso.MainApp"
Publisher="CN=Contoso"
Version="2.23.12.43"
Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="12"
UpdateBlocksActivation="true"
ShowPrompt="true" />
<AutomaticBackgroundTask />
<ForceUpdateFromAnyVersion>true</ForceUpdateFromAnyVersion>
</UpdateSettings>
</AppInstaller>
手順 7: 自動更新設定を追加する
重要
次の設定では、.appinstaller ファイルと Windows 10 バージョン 2004 (ビルド 19041) 以降の 2021 スキーマ バージョンが必要です。
これらの設定を使用すると、前の手順で設定した構成に従って、アプリ インストーラー URI からWindows アプリを更新できます。 この手順で構成された更新 URI は、元のアプリ インストーラー URI にアクセスできなくなった場合に使用できるフォールバック URI として機能します。 任意のWindows アプリに対して最大 10 個の更新 URI を構成できます。
更新 URI は、アプリ インストーラー ファイルを対象とする必要があります。
注
これらの設定は、スキーマが 2021 以降として構成されている場合にのみ機能します。
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
Version="1.0.0.0"
Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >
<MainBundle
Name="Contoso.MainApp"
Publisher="CN=Contoso"
Version="2.23.12.43"
Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="12" />
</UpdateSettings>
<UpdateUris>
<UpdateUri>https://www.contoso.com/Installers/MainApp.AppInstaller</UpdateUri>
<UpdateUri>\\ServerName\Share\Installers\MainApp.AppInstaller</UpdateUri>
</UpdateUris>
</AppInstaller>
手順 8: 自動修復設定を追加する
重要
次の設定では、.appinstaller ファイルと Windows 10 バージョン 2004 (ビルド 19041) 以降の 2021 スキーマ バージョンが必要です。
これらの設定により、改ざんされたWindows アプリの修復が有効になります。 アプリの修復に使用するソース インストーラーは、 <RepairURIs> プロパティを使用して構成できます。 Windows アプリは、アプリ インストーラー URI に基づいて自身の修復を試みます。アクセスできない場合は、修復 URI を使用して修復ソースを識別します。 任意のWindows アプリに対して最大 10 個の修復 URI を構成できます。
修復 URI は、Windowsアプリまたはアプリ インストーラー ファイルを対象にすることができます。 この設定では、Windows アプリがアプリ インストーラー ファイルを使用してインストールされている必要はありません。
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
Version="1.0.0.0"
Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >
<MainBundle
Name="Contoso.MainApp"
Publisher="CN=Contoso"
Version="2.23.12.43"
Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />
<UpdateSettings>
<OnLaunch
HoursBetweenUpdateChecks="12" />
</UpdateSettings>
<RepairUris>
<RepairUri></RepairUri>
<RepairUri></RepairUri>
</RepairUris>
</AppInstaller>
XML スキーマの詳細については、「 アプリ インストーラー ファイルリファレンス」を参照してください。
注
アプリ インストーラーのファイルの種類は、Windows 10 バージョン 1709 (Windows 10 Fall Creators Update) の新機能です。 以前のバージョンのWindows 10のアプリ インストーラー ファイルを使用したWindows 10 アプリの展開はサポートされません。 HoursBetweenUpdateChecks 要素は、Windows 10 バージョン 1803 以降で使用できます。