IIS サーバーからWindows アプリを配布する

Warnung

これらの Web インストール チュートリアルで使用される ms-appinstaller: URI プロトコルは、 2023 年 12 月の時点で既定で無効になっています。 ほとんどのデバイスのユーザーは、ワンクリックでブラウザーによってトリガーされるインストール フローを使用できません。 広範な配布の場合は、代わりにMicrosoft Storeに発行してください。 IT 部門がグループ ポリシーを使用してプロトコルを再び有効にできるエンタープライズマネージド デバイスについては、「 Web ページからのWindows アプリのインストールを参照してください。

このチュートリアルでは、IIS サーバーを設定し、Web アプリでアプリ パッケージをホストできることを確認し、App Installer を効果的に呼び出して使用する方法について説明します。

アプリ インストーラー アプリを使用すると、開発者と IT 担当者は、独自の Content Delivery Network (CDN) でアプリをホストすることで、Windows 10アプリを配布できます。 これは、アプリをMicrosoft Storeに発行したくない、または発行する必要がないが、Windows 10パッケージ化とデプロイ プラットフォームを活用したい企業に役立ちます。

設定

このチュートリアルを正常に実行するには、次のものが必要です。

  1. Visual Studio 2017
  2. Web 開発ツールと IIS
  3. Windows 10 アプリ パッケージ - 配布するアプリ パッケージ

省略可能: GitHubの Starter Project。 これは、使用するアプリ パッケージがなくても、この機能の使用方法を学習したい場合に役立ちます。

手順 1 - IIS と ASP.NET をインストールする

インターネット インフォメーション サービス は、[スタート] メニューからインストールできるWindows機能です。 スタート メニューWindows機能をオンまたはオフにするを検索します。

インターネット インフォメーション サービス を選択して IIS をインストールします。

インターネット インフォメーション サービスの下のすべてのチェック ボックスをオンにする必要はありません。 インターネット インフォメーション サービスをオンにしたときに選択した値だけで十分です。

また、4.5 以降 ASP.NET インストールする必要があります。 インストールするには、インターネット インフォメーション サービス -> World Wide Web サービス -> アプリケーション開発機能を探します。 ASP.NET 4.5 以上のバージョンの ASP.NET を選択します。

ASP.NET 機能のインストールのスクリーンショット

手順 2 - Visual Studio 2017 および Web 開発ツールをインストールする

Install Visual Studio 2017 (まだインストールしていない場合)。 Visual Studio 2017 が既にある場合は、次のワークロードがインストールされていることを確認します。 ワークロードがインストールに存在しない場合は、Visual Studio インストーラー ([スタート] メニューから見つかった) を使用して作業を進めます。

インストール中に、ASP.NET Web 開発およびその他のワークロードを選択します。

インストールが完了したら、Visual Studio起動し、新しいproject (File ->New Project) を作成します。

手順 3 - Web アプリを構築する

Administrator として Visual Studio 2017 を起動し、新しい Visual C# Web Application プロジェクトを empty プロジェクト テンプレートで作成します。

新しい Web プロジェクトの作成のスクリーンショット

手順 4 - Web アプリを使用して IIS を構成する

ソリューション エクスプローラーでルート プロジェクトを右クリックし、Properties を選択>。

Web アプリのプロパティで、[ Web ] タブを選択します。[ サーバー ] セクションで、ドロップダウン メニューから [ローカル IIS ] を選択し、[ 仮想ディレクトリの作成] をクリックします。

プロジェクトのプロパティの [Web] タブのスクリーンショット

手順 5 - アプリ パッケージを Web アプリケーションに追加する

配布するアプリ パッケージを Web アプリケーションに追加します。 提供されている starter プロジェクト パッケージの一部であるアプリ パッケージをGitHubで使用できます (アプリ パッケージを使用できない場合)。 パッケージが署名された証明書 (MySampleApp.cer) も、GitHubのサンプルと共にあります。 アプリをインストールする前に、デバイスに証明書をインストールしておく必要があります (手順 9)。

スターター プロジェクト Web アプリケーションで、配布するアプリ パッケージを含む パッケージ と呼ばれる新しいフォルダーが Web アプリに追加されました。 Visual Studioでフォルダーを作成するには、ソリューション エクスプローラーでプロジェクト ノードを右クリックし、Add ->New Folder を選択し、packages という名前を付けます。 アプリ パッケージをフォルダーに追加するには、パッケージ フォルダーを右クリックし、[追加] ->[Existing Item...] を選択し、アプリ パッケージの場所を参照します。

パッケージの追加のスクリーンショット

手順 6 - Web ページを作成する

このサンプル Web アプリでは、単純な HTML を使用します。 必要に応じて自由に Web アプリを構築できます。

ソリューション エクスプローラーのルート プロジェクトを右クリックし、[追加] -> [新しい項目] を選択し、[Web] セクションから新しい HTML ページを追加します。

HTML ページが作成されたら、ソリューション エクスプローラーの HTML ページを右クリックし、 [スタート ページとして設定 を選択します。

HTML ファイルをダブルクリックして、コード エディター ウィンドウで開きます。 このチュートリアルでは、Windows 10 アプリをインストールするためにアプリ インストーラー アプリを正常に呼び出すために Web ページに必要な要素のみが使用されます。

Web ページに次の HTML コードを含めます。 アプリ インストーラーを正常に呼び出すための鍵は、アプリ インストーラーが OS に登録するカスタム スキーム ( ms-appinstaller:?source=) を使用することです。 詳細については、以下のコード例を参照してください。

カスタム スキームの後に指定された URL パスが、VS ソリューションの Web タブのProject URL と一致していることを確認します。

<html>
<head>
    <meta charset="utf-8" />
    <title> Install Page </title>
</head>
<body>
    <a href="ms-appinstaller:?source=http://localhost/SampleWebApp/packages/MySampleApp.msixbundle"> Install My Sample App</a>
</body>
</html>

手順 7 - アプリ パッケージの MIME タイプ用に Web アプリを構成する

ソリューション エクスプローラーから Web.config ファイルを開き、 <configuration> 要素内に次の行を追加します。

<system.webServer>
    <!--This is to allow the web server to serve resources with the appropriate file extension-->
    <staticContent>
      <mimeMap fileExtension=".appx" mimeType="application/appx" />
      <mimeMap fileExtension=".msix" mimeType="application/msix" />
      <mimeMap fileExtension=".appxbundle" mimeType="application/appxbundle" />
      <mimeMap fileExtension=".msixbundle" mimeType="application/msixbundle" />
      <mimeMap fileExtension=".appinstaller" mimeType="application/appinstaller" />
    </staticContent>
</system.webServer>

ASP.NET Coreでは、静的コンテンツweb.config MIME マッピングは使用されません。 ホスティング アプリが ASP.NET Coreでビルドされている場合は、静的ファイル ミドルウェア (通常は .appx メソッド) で、.msix.appxbundle.msixbundle.appinstaller、および Startup.Configure に必要なコンテンツ タイプを構成します。 詳細については、.NET Core のドキュメントを参照してください。

手順 8 - アプリ インストーラーのループバック除外を追加する

ネットワークの分離により、アプリ インストーラーなどのWindows 10 アプリは、http://localhost/. などの IP ループバック アドレスを使用するように制限されます ローカル IIS サーバーを使用する場合は、アプリ インストーラーをループバック除外リストに追加する必要があります。

これを行うには、管理者としてコマンド プロンプトを開き、次のように入力します。

CheckNetIsolation.exe LoopbackExempt -a -n=microsoft.desktopappinstaller_8wekyb3d8bbwe

アプリが除外リストに追加されたことを確認するには、次のコマンドを使用して、ループバック除外リストにアプリを表示します。

CheckNetIsolation.exe LoopbackExempt -s

一覧に microsoft.desktopappinstaller_8wekyb3d8bbwe が表示されます。

App Installer を使用したアプリのインストールのローカル検証が完了したら、この手順で追加したループバック除外を削除できます。

CheckNetIsolation.exe LoopbackExempt -d -n=microsoft.desktopappinstaller_8wekyb3d8bbwe

手順 9 - Web アプリを実行する

次の図に示すように、VS リボンの実行ボタンをクリックして、Web アプリケーションをビルドして実行します。

Visual Studio

ブラウザーで Web ページが開きます。

Web ページからのアプリのインストールのスクリーンショット

Web ページのリンクをクリックしてアプリ インストーラー アプリを起動し、Windows 10 アプリ パッケージをインストールします。

問題解決

十分な特権がない

Visual Studioで Web アプリを実行すると、"コンピューター上の IIS Web サイトにアクセスするための十分な特権がありません" などのエラーが表示される場合は、Visual Studio管理者として実行する必要があります。 Visual Studioの現在のインスタンスを閉じて、管理者として再度開きます。

スタート ページの設定

Web アプリを実行すると、ブラウザーが HTTP 403.14 - 禁止エラーで読み込まれる場合は、Web アプリに開始ページが定義されていないためです。 スタート ページを定義する方法については、このチュートリアルの手順 6 を参照してください。