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

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

関連セットを 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 名前空間
Version 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. この *.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 以降で利用できます。