アプリ インストーラー ファイルの手動作成

この記事では、自動更新と修復機能を備えた関連セットを定義するアプリ インストーラー ファイルを手動で作成する方法について説明します。 関連セットとは、1 つのエンティティではなく、メイン パッケージとオプション パッケージの組み合わせです。

関連セットを 1 つのエンティティとしてインストールするには、メイン パッケージとオプション パッケージを指定する必要があります。 これを行うには、.appinstaller という拡張子の XML ファイルを作成して、関連セットを定義する必要があります。 アプリ インストーラーでは *.appinstaller ファイルが使用され、ユーザーは定義されているすべてのパッケージを 1 回のクリックでインストールできます。

デプロイ中、アプリ インストーラー ファイルは次のことを行います。

  • < MainPackage > 要素の URI 属性で参照されている Windows アプリ パッケージが、ターゲット Windows アプリ パッケージの属性である NamePublisherVersion を検証します。 Windows アプリ パッケージ マニフェスト内の Package/Identity 要素が一致しない場合、インストールは失敗します。
  • パッケージのファミリーに使用する更新 URI と修復 URI への参照を作成します。

アプリ インストーラー ファイルの作成方法

関連セットを 1 つのエンティティとして配布するには、アプリ インストーラー スキーマに必要な要素が含まれたアプリ インストーラー ファイルを作成する必要があります。

  1. *.AppInstaller ファイルを作成します。
  2. アプリ インストーラー ファイルの属性を指定します。
  3. メイン Windows アプリ パッケージを指定します。
  4. 関連セットのオプション パッケージを指定します。
  5. 依存関係の Windows アプリ フレームワーク パッケージを指定します。
  6. 更新 URI パスを指定します。
  7. 修復 URI パスを指定します。
  8. 更新設定を指定します。
アプリ インストーラー ファイルの例

以上の手順に従うと、次のようなアプリ インストーラー ファイルが作成されます。

<?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 というファイル名拡張子の新しいファイルを作成します。

方法:
  1. スタート メニューを開きます。
  2. notepad.exe」と入力します。
  3. [ファイル] メニューを開きます。
  4. ドロップダウン メニューから [名前を付けて保存] を選択します。

手順 2: 基本的なテンプレートの追加

アプリ インストーラー ファイルのバージョン、パス、ネットワークの場所を指定した AppInstaller 要素をアプリ インストーラー ファイルに追加します。 AppInstaller 要素内の情報は、関連する Windows アプリをインストールする際に利用されます。

要素 説明
xmlns XML 名前空間
[バージョン] 4 桁のドット区切り表記方法 (1.0.0.0) で指定されたアプリ インストーラー ファイルのバージョン。
URI デバイスからアクセスできる現在のアプリ インストーラー ファイルの URI パス。
方法:
  1. 手順 1. で作成したファイルを開きます。

  2. 次の XML の内容を *.AppInstaller ファイルにコピーします。

    <?xml version="1.0" encoding="utf-8"?>
    <AppInstaller
        xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
        Version=""
        Uri="" >
    </AppInstaller>
    
  3. 実際のアプリ インストーラー ファイルのバージョンで Version 属性を更新します。

  4. この *URI ファイルにアクセスするためのネットワークの場所で URI 属性を更新します。

手順 3: メイン パッケージ情報の追加

アプリ インストーラー ファイルを使ってインストールされる主要な Windows アプリは、<MainPackage><MainBundle> を使用して識別されます。 <MainPackage> は、Windows アプリ インストーラーが *<MainPackage> と *.appx のどちらかである場合に使用されます。 Windows アプリ インストーラーが、*<MainBundle> または *.appxbundle という拡張子の、バンドルされた Windows アプリ インストーラーである場合には <MainBundle> を使用します。

要素 説明
名前 アプリ インストーラー ファイルを通じて配布されるプライマリ アプリケーションの名前。 これは、$(Get-AppxPackage [AppName]).Name という PowerShell コマンドレットで確認できます。
Publisher プライマリ Windows アプリのインストーラーの署名に使用される公開者証明書の正規名。 これは、$(Get-AppxPackage [AppName]).Publisher という PowerShell コマンドレットで確認できます。
バージョン プライマリ Windows アプリのインストーラーのバージョン。4 桁のドット区切り表記方法 (1.0.0.0) で指定されます。 これは、$(Get-AppxPackage [AppName]).Version という PowerShell コマンドレットで確認できます。
ProcessorArchitecture プライマリ Windows アプリのインストーラーの対象アーキテクチャ。
URI プライマリ Windows アプリのインストール メディアの URI パス。

<MainBundle> 属性または <MainPackage> 属性に含まれる情報は、それぞれアプリ バンドル マニフェストまたはアプリ パッケージ マニフェストの <MainBundle> 要素に一致する必要があります。

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> にする必要があります。 子要素内のパッケージ情報は、バンドルまたはパッケージのマニフェストの identity 要素と一致する必要があります。

要素 説明
名前 アプリ インストーラー ファイルを通じて配布されるオプション アプリケーションの名前。 これは、$(Get-AppxPackage [AppName]).Name という PowerShell コマンドレットで確認できます。
Publisher オプション 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: 依存関係の追加

dependencies 要素では、メイン パッケージまたはオプション パッケージに必要なフレームワーク パッケージを指定できます。

要素 説明
名前 アプリ インストーラー ファイルを通じて配布される依存関係アプリケーションの名前。 これは、$(Get-AppxPackage [AppName]).Name という PowerShell コマンドレットで確認できます。
Publisher 依存関係 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 更新プログラムのインストール時と確認時にウィンドウを表示するかどうかを定義します。
<?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 以降で利用できます。