アプリケーション パッケージのローカルな共有 (Windows ストア アプリ)

Windows ストア アプリを開発した後、自分または他の人がテストを実行できるように、1 つ以上のローカル コンピューターにインストールしたいと考える場合があります。別のコンピューターに Windows ストア アプリをインストールする前に、アプリ パッケージを作成し、Windows PowerShell スクリプトを実行する必要があります。

アプリ パッケージの作成

アプリケーションをインストールするには、まず、アプリ パッケージを作成する必要があります。パッケージの作成方法の詳細については、「Creating an app package」を参照してください。

作成したアプリ パッケージは、パッケージの場所に指定した出力フォルダーに保存され、「PackageName_Test」という名前になります。フォルダーには、.appx ファイル、セキュリティ証明書、Windows PowerShell スクリプト、およびその他のファイルが含まれています。

テストするアプリ パッケージをインストールします。

  1. Visual Studio の出力ディレクトリには、.appx のファイルと一緒に Add-AppDevPackage PowerShell スクリプトがあります。

  2. Add-AppDevPackage.ps1 ファイルのショートカット メニューで、[PowerShell で実行] をクリックします。

    重要

    ローカル コンピューターの管理者セキュリティ グループのメンバーであるが、Add-AppDevPackage.ps1 ファイルが置かれているネットワーク共有に対するアクセス許可がない場合、スクリプト ファイルがないことを示すエラー メッセージが表示されることがあります。アクセスの問題を回避するには、スクリプトを実行する前に、ローカル コンピューターに出力フォルダーの内容をコピーします。

    このスクリプトは、次の手順を実行します。

    1. スクリプトがインストールする証明書に関する情報を示します。スクリプトには、ローカル コンピューターで実行ポリシーを変更する際のリスクに関する警告メッセージも表示されます。実行ポリシーは、信頼できないスクリプトからコンピューターを保護するのに役立ちます。実行ポリシーを変更すると、about_Execution_Policies に説明されているセキュリティ上のリスクにさらされる可能性があります。

      注意

      ショートカット メニューを使用せず、PowerShell から直接スクリプトを起動した場合、実行を変更したことに伴うリスクに関する警告は表示されず、スクリプトは失敗します。この問題を回避するには、実行ポリシーを手動で変更し、スクリプトを再度実行します。

      「Y」と入力して、実行ポリシーを変更することを確認する必要があります。「N」を入力すると、この操作をスキップして次の操作に進みます。「S」を入力すると、現在のパイプラインは一時停止され、コマンド プロンプトに戻ります。「exit」という単語を入力すると、パイプラインが再開されます。

    2. 開発者用ライセンスがあるかどうかを確認します。スクリプトで現在のライセンスの期限が切れていることが検出されない場合は、ライセンスを取得するように促すメッセージが表示されます。

      開発者用ライセンスを取得するには、Microsoft アカウントが必要です。詳細については、「Getting a developer license (Windows Store apps) (開発者ライセンスの取得 (Windows ストア アプリ))」を参照してください。

    3. アプリケーション パッケージと必要な証明書があるかどうかを確認します。足りないものがある場合、この開発者のパッケージをインストールする前にインストールするよう求めるメッセージが表示されます。たとえば、開発者の証明書がローカル コンピューターに見つからない場合、これをインストールするように求めるメッセージが表示されます。また、デジタル証明書をコンピューターの [信頼されたユーザー] 証明書ストアにインストールすると、重大なセキュリティ上のリスクが発生するため、このデジタル証明書の発行者が信頼できる場合にのみインストールするように警告するメッセージも表示されます。このアプリの使用が終了すると、コンピューターの信頼されたユーザー証明書ストアから、関連したデジタル証明書を手動で削除できるようになります。証明書を削除する方法については、「How to use the Certificates Console (証明書コンソールの使用方法)」を参照してください。続行するかどうかを確認する必要があります。

      署名する証明書には、次の値が含まれている必要があります。

      • 拡張キー使用法: コード署名 (必須)

      • 基本的な制約: Subject Type=End Entity (必須)

      • ライフタイム署名の EKU (オプション)

      その他のすべての EKU では証明書が無効になります。必要な値がスクリプトで見つからない場合は、エラーが表示されます。

    4. 必要な依存関係パッケージがあるかどうかを検証します。

    5. 依存関係パッケージ、アプリ パッケージの順にインストールします。

      アプリ パッケージがインストールされると、「開発者パッケージは正常にインストールされました」というメッセージが表示されます。

  3. スタート画面で、アプリケーション名を示すタイルを選択します。

    アプリケーションが開始します。

セキュリティに関するメモセキュリティに関するメモ

PowerShell スクリプトが実行されず、その原因がエラー メッセージで通知されない場合は、コンピューターのユーザー アクセス制御 (UAC) が変更されている可能性があります。既定の UAC 設定は、[アプリがコンピューターに変更を加えようとする場合のみ通知する (既定)] となっていますが、[通知しない] に変更できます。標準のユーザー アカウントを使用して、UAC が [通知しない] に設定されているコンピューターにログオンする場合、管理者権限が必要な変更は、自動的にすべて拒否されます。この場合、PowerShell スクリプトは開始されますが、続行するのに管理者権限が必要です。UAC ダイアログ ボックスは表示されず、Windows はスクリプトが変更されるのを自動的に防ぎます。この問題を解決するには、UAC 設定を変更するか、スクリプトを管理者として実行します。

Add-AppDevPackage.ps1 PowerShell スクリプトを実行すると、Visual Studio は Get-AuthenticodeSignature 関数を利用して TEST Visual Studio Certification Authority テスト署名証明書をインストールする必要があるかどうかを判断します。[証明書 - 現在のユーザー] > [信頼されたルート証明機関] > [証明書] ノードに、テスト署名証明書が既にインストールされている場合は、関数によって、署名が有効であることを示す値が返されます。しかし、Windows によってその証明書が信頼されていないため、そのパッケージの配置は依然として失敗します。Windows でその証明書が信頼されるようにするには、[証明書 (ローカル コンピューター)] > [信頼されたルート証明機関] > [証明書] ノード、または [証明書 (ローカル コンピューター)] > [信頼されたユーザー] > [証明書] ノードに証明書を配置する必要があります。この 2 か所にある証明書のみ、ローカル コンピューターのコンテキストでの証明書信頼を検証できます。この 2 か所以外の証明書では、"Add-AppxPackage : Deployment failed with HRESULT: 0x800B0109, A certificate chain processed, but terminated in a rootcertificate which is not trusted by the trust provider. (Exception from HRESULT: 0x800B0109)error 0x800B0109: The root certificate of the signature in the app package must be trusted." (Add-AppxPackage: 次の HRESULT で展開に失敗しました: 0x800B0109。証明書チェーンは処理されましたが、ルート証明書で停止されました。証明書は信頼プロバイダーから信頼されていません。(HRESULT からの例外: 0x800B0109) エラー 0x800B0109: アプリ パッケージ内の署名の証明書は信頼されている必要があります。) のようなエラー メッセージが表示されます。このエラーが表示されたら、先ほど説明した 2 つの [証明書 (ローカル コンピューター)] ノードのいずれかにテスト署名証明書を移動してください。証明書を移動する方法については、「How to use the Certificates Console (証明書コンソールの使用方法)」を参照してください。

参照

概念

アプリケーション パッケージへの署名 (Windows ストア アプリ)

コマンド プロンプトからのアプリケーション パッケージのビルド (Windows ストア アプリ)