アプリ インストーラー ファイルの手動作成
この記事では、自動更新と修復機能を備えた関連セットを定義するアプリ インストーラー ファイルを手動で作成する方法について説明します。 関連セットは 1 つのエンティティではなく、メイン パッケージとオプション パッケージの組み合わせです。
関連セットを 1 つのエンティティとしてインストールできるようにするには、メイン パッケージとオプションのパッケージを 1 つとして指定できる必要があります。 これを行うには、.appinstaller という拡張子の XML ファイルを作成して、関連セットを定義する必要があります。 アプリ インストーラーでは *.appinstaller ファイルが使用され、ユーザーは定義されているすべてのパッケージを 1 回のクリックでインストールできます。
デプロイ中、アプリ インストーラー ファイルは次のことを行います。
- < MainPackage > 要素の
URI
属性で参照されている Windows アプリ パッケージが、ターゲット Windows アプリ パッケージの属性であるName
、Publisher
、Version
を検証します。 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
要素をアプリ インストーラー ファイルに追加します。 AppInstaller
要素内の情報は、関連する Windows アプリをインストールする際に利用されます。
要素 | 説明 |
---|---|
xmlns | XML 名前空間 |
Version | 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
属性を更新します。この *.AppInstaller ファイルにアクセスするためのネットワークの場所で
URI
属性を更新します。
手順 3: メイン パッケージ情報を追加する
アプリ インストーラー ファイルを使ってインストールされる主要な Windows アプリは、<MainPackage>
と <MainBundle>
を使用して識別されます。 <MainPackage>
は、Windows アプリ インストーラーが *.msix と *.appx のどちらかである場合に使用されます。 Windows アプリ インストーラーが、*.msixbundle または *.appxbundle という拡張子の、バンドルされた Windows アプリ インストーラーである場合には <MainBundle>
を使用します。
要素 | 説明 |
---|---|
Name | アプリ インストーラー ファイルを通じて配布されるプライマリ アプリケーションの名前。 これは、$(Get-AppxPackage [AppName]).Name という PowerShell コマンドレットで確認できます。 |
発行元 | プライマリ Windows アプリのインストーラーの署名に使用される公開者証明書の正規名。 これは、$(Get-AppxPackage [AppName]).Publisher という PowerShell コマンドレットで確認できます。 |
バージョン | プライマリ Windows アプリのインストーラーのバージョン。4 桁のドット区切り表記方法 (1.0.0.0) で指定されます。 これは、$(Get-AppxPackage [AppName]).Version という PowerShell コマンドレットで確認できます。 |
ProcessorArchitecture | プライマリ 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 ファイルである場合は、以下のように、<MainPackage>
の代わりに <MainBundle>
を使用します。 バンドルの場合、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 要素と一致する必要があります。
要素 | 説明 |
---|---|
Name | アプリ インストーラー ファイルを通じて配布されるオプション アプリケーションの名前。 これは、$(Get-AppxPackage [AppName]).Name という PowerShell コマンドレットで確認できます。 |
発行元 | オプション Windows アプリのインストーラーの署名に使用される公開者証明書の正規名。 これは、$(Get-AppxPackage [AppName]).Publisher という PowerShell コマンドレットで確認できます。 |
バージョン | オプション Windows アプリのインストーラーのバージョン。4 桁のドット区切り表記方法 (1.0.0.0) で指定されます。 これは、$(Get-AppxPackage [AppName]).Version という PowerShell コマンドレットで確認できます。 |
ProcessorArchitecture | オプション 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: 依存関係を追加する
依存関係要素では、メインパッケージまたはオプションのパッケージに必要なフレームワーク パッケージを指定できます。
要素 | 説明 |
---|---|
Name | アプリ インストーラー ファイルを通じて配布される依存関係アプリケーションの名前。 これは、$(Get-AppxPackage [AppName]).Name という PowerShell コマンドレットで確認できます。 |
発行元 | 依存関係 Windows アプリのインストーラーの署名に使用される公開者証明書の正規名。 これは、$(Get-AppxPackage [AppName]).Publisher という PowerShell コマンドレットで確認できます。 |
バージョン | 依存関係 Windows アプリのインストーラーのバージョン。4 桁のドット区切り表記方法 (1.0.0.0) で指定されます。 これは、$(Get-AppxPackage [AppName]).Version という PowerShell コマンドレットで確認できます。 |
ProcessorArchitecture | 依存関係 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> はオプションの要素です。 <UpdateSettings> 内で、OnLaunch オプションはアプリの起動時に更新プログラムのチェックを行うことを指定します。HoursBetweenUpdateChecks="12" は、更新プログラムのチェックを 12 時間おきに行うことを指定します。 HoursBetweenUpdateChecks が指定されていない場合、更新のチェックに使用されるデフォルトの間隔は 24 時間です。 その他の種類の更新 (バックグラウンド更新など) は UpdateSettings スキーマにあります。また、その他の種類の起動時更新 (プロンプトを使用した更新など) は OnLaunch スキーマにあります。
要素 | 説明 |
---|---|
HoursBetweenUpdateChecks | Windows アプリの更新プログラムを確認する最小間隔を定義します。 |
UpdateBlocksActivation | アプリの更新プログラムを確認する際のエクスペリエンスを定義します。 |
ShowPrompt | 更新プログラムのインストール時と確認時にウィンドウを表示するかどうかを定義します。 |
ForceUpdateFromAnyVersion | アプリケーションの次のバージョンが、新しいバージョンまたは古いバージョンになる可能性があることを指定します。 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: 自動更新の設定を追加する
重要
以下の設定を使用できるのは、Windows Insider ビルドの Windows 10 で 2021 スキーマを使用する場合だけです。
アプリ インストーラー ファイルを使用してインストールされた Windows アプリは、既定では、前の手順で設定した構成に従ってアプリ インストーラーの URI から更新されます。 この手順で構成する更新 URI は、元のアプリ インストーラーの URI がアクセスできなくなった場合のフォールバック URI として機能します。 Windows アプリには最大 10 個の更新 URI を構成できます。
更新 URI は、アプリ インストーラー ファイルをターゲットにする必要があります。
Note
これらの設定が正しく機能するためには、スキーマが 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: 自動修復の設定を追加する
重要
以下の設定を使用できるのは、Windows Insider ビルドの Windows 10 で 2021 スキーマを使用する場合だけです。
デバイスにインストールされた Windows アプリは、壊れてしまった場合の自動修復をサポートできます。 Windows アプリの修復に使用するソース インストーラーは、<RepairURIs>
プロパティを使用して構成できます。 Windows アプリは、アプリ インストーラーの URI を利用して自己修復を試みます。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 スキーマの詳細については、「アプリ インストーラー ファイルリファレンス」をご参照ください。
Note
アプリ インストーラーは、Windows 10 バージョン 1709 (Windows 10 Fall Creators Update) で新たに導入されたファイルの種類です。 以前のバージョンの Windows 10 では、アプリ インストーラー ファイルの使用による Windows 10 アプリの展開はサポートされていません。 HoursBetweenUpdateChecks 要素は、Windows 10 バージョン 1803 以降で利用できます。