このチュートリアルでは、IIS サーバーを設定し、Web アプリでアプリ パッケージをホストできることを確認し、App Installer を効果的に呼び出して使用する方法について説明します。
アプリ インストーラー アプリを使用すると、開発者と IT 担当者は、独自の Content Delivery Network (CDN) でホストすることで Windows 10 アプリを配布できます。 これは、Microsoft Store にアプリを公開したくない、または公開する必要がないが、Windows 10 のパッケージ化と展開のプラットフォームを引き続き利用する必要がある企業に役立ちます。
設定
このチュートリアルを正常に実行するには、次のものが必要です。
- Visual Studio 2017
- Web 開発ツールと IIS
- Windows 10 アプリ パッケージ - 配布するアプリ パッケージ
省略可能: GitHub の スターター プロジェクト 。 これは、使用するアプリ パッケージがなくても、この機能の使用方法を学習したい場合に役立ちます。
手順 1 - IIS と ASP.NET をインストールする
インターネット インフォメーション サービス は、スタート メニューからインストールできる Windows 機能です。 [スタート] メニューで、[Windows の機能をオンまたはオフにする] を検索します。
IIS をインストールする インターネット インフォメーション サービス を見つけて選択します。
注
インターネット インフォメーション サービスのすべてのチェック ボックスをオンにする必要はありません。 インターネット インフォメーション サービスを確認するときに選択した情報だけで十分です。
また、4.5 以上 ASP.NET インストールする必要があります。 インストールするには、 インターネット インフォメーション サービス -> World Wide Web サービス -> アプリケーション開発機能を見つけます。 ASP.NET 4.5 以上の ASP.NET のバージョンを選択します。
手順 2 - Visual Studio 2017 および Web 開発ツールをインストールする
Visual Studio 2017 をまだインストールしていない場合はインストールします。 Visual Studio 2017 が既にある場合は、次のワークロードがインストールされていることを確認します。 ワークロードがインストールに存在しない場合は、Visual Studio インストーラー ([スタート] メニューから見つかった) を使用して作業を進めます。
インストール中に、 ASP.NET と Web 開発 、および関心のあるその他のワークロードを選択します。
インストールが完了したら、Visual Studio を起動し、新しいプロジェクト (File ->New Project) を作成します。
手順 3 - Web アプリを構築する
管理者として Visual Studio 2017 を起動し、空のプロジェクト テンプレートを使用して新しい Visual C# Web アプリケーション プロジェクトを作成します。
手順 4 - Web アプリを使用して IIS を構成する
ソリューション エクスプローラーで、ルート プロジェクトを右クリックし、[ プロパティ] を選択します。
Web アプリのプロパティで、[ Web ] タブを選択します。[ サーバー ] セクションで、ドロップダウン メニューから [ローカル IIS ] を選択し、[ 仮想ディレクトリの作成] をクリックします。
手順 5 - アプリ パッケージを Web アプリケーションに追加する
配布するアプリ パッケージを Web アプリケーションに追加します。 使用可能なアプリ パッケージがない場合は、GitHub で提供されている スターター プロジェクト パッケージ の一部であるアプリ パッケージを使用できます。 パッケージが署名された証明書 (MySampleApp.cer) も GitHub のサンプルと共にあります。 アプリをインストールする前に、デバイスに証明書をインストールしておく必要があります (手順 9)。
スターター プロジェクト Web アプリケーションで、配布するアプリ パッケージを含む パッケージ と呼ばれる新しいフォルダーが Web アプリに追加されました。 Visual Studio でフォルダーを作成するには、ソリューション エクスプローラーでプロジェクト ノードを右クリックし、[ 追加 ] ->[新しいフォルダー] を選択し、パッケージに名前を付 けます。 アプリ パッケージをフォルダーに追加するには、パッケージ フォルダーを右クリックし、[追加] ->[Existing Item...] を選択し、アプリ パッケージの場所を参照します。
手順 6 - Web ページを作成する
このサンプル Web アプリでは、単純な HTML を使用します。 必要に応じて自由に Web アプリを構築できます。
ソリューション エクスプローラーのルート プロジェクトを右クリックし、[追加] -> [新しい項目] を選択し、[Web] セクションから新しい HTML ページを追加します。
HTML ページが作成されたら、ソリューション エクスプローラーで HTML ページを右クリックし、[ スタート ページとして設定] を選択します。
HTML ファイルをダブルクリックして、コード エディター ウィンドウで開きます。 このチュートリアルでは、Windows 10 アプリをインストールするためにアプリ インストーラー アプリを正常に呼び出すために Web ページに必要な要素のみが使用されます。
Web ページに次の HTML コードを含めます。 アプリ インストーラーを正常に呼び出すための鍵は、アプリ インストーラーが OS に登録するカスタム スキーム ( ms-appinstaller:?source=) を使用することです。 詳細については、以下のコード例を参照してください。
注
カスタム スキームの後に指定された URL パスが、VS ソリューションの Web タブのプロジェクト 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>
注
最新の Microsoft Web テクノロジ .NET Core。 .NET Core ASP を使用した Web サイト ビルドでは、静的コンテンツ mimeMap web.config 無視されます。 その結果、MSIX のインストールをホストする .NET Core Web サイトを適切に構成する必要があります。そのためには、Startup.cs ファイル内の Configure メソッドを変更する必要があります。 詳細については 、.NET Core のドキュメント を参照してください。
手順 8 - アプリ インストーラーのループバック除外を追加する
ネットワークの分離により、アプリ インストーラーなどの Windows 10 アプリは、次のような IP ループバック アドレスを使用するように制限されます。 http://localhost/. ローカル 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 アプリケーションをビルドして実行します。
ブラウザーで Web ページが開きます。
Web ページのリンクをクリックしてアプリ インストーラー アプリを起動し、Windows 10 アプリ パッケージをインストールします。
問題解決
十分な特権がない
Visual Studio で Web アプリを実行すると、"コンピューター上の IIS Web サイトにアクセスするための十分な権限がありません" などのエラーが表示される場合は、管理者として Visual Studio を実行する必要があります。 Visual Studio の現在のインスタンスを閉じて、管理者として再度開きます。
スタート ページの設定
Web アプリを実行すると、ブラウザーが HTTP 403.14 - 禁止エラーで読み込まれる場合は、Web アプリに開始ページが定義されていないためです。 スタート ページを定義する方法については、このチュートリアルの手順 6 を参照してください。