Visual Studio でデスクトップ アプリや UWP アプリをパッケージ化する

アプリは、配布する前にパッケージ化する必要があります。 この記事では、Visual Studio を使って MSIX パッケージを構成、作成、テストする方法について説明します。

アプリ パッケージの種類

  • アプリ パッケージ (.msix または .appx)
    アプリケーションとそのリソースを含む単一のパッケージで、単一のデバイス アーキテクチャを対象とします。 たとえば、x64 や x86 のアプリケーション パッケージです。 アプリ バンドルにより複数のアーキテクチャを対象とするには、アーキテクチャそれぞれに対してパッケージを 1 つずつ作成する必要があります。

  • アプリ バンドル (.msixbundle または .appxbundle)
    アプリ バンドルは、複数のアプリ パッケージを含めることができるパッケージの一種であり、それぞれが特定のデバイス アーキテクチャをサポートするように構築されています。 たとえば、アプリ バンドルには、x86、x64、ARM 構成用の 3 つの個別のアプリ パッケージを含めることができます。 アプリ バンドルは、可能な限り幅広いデバイスでアプリを使用できるため、可能な限り生成する必要があります。

  • アプリ パッケージのアップロード ファイル (.msixupload または .appxupload) - Microsoft Store 申請のみ
    複数のアプリ パッケージを含めることができる 1 つのファイル、またはさまざまなプロセッサ アーキテクチャをサポートするアプリ バンドル。 アプリ パッケージのアップロード ファイルには、アプリが Microsoft Store に公開された後にアプリのパフォーマンスを分析するためのシンボル ファイルも含められます。 Microsoft Store で公開するためにパートナー センターに提出する目的で、Visual Studio を使ってアプリをパッケージングする際、このファイルは自動的に作成されます。

アプリ パッケージを準備して作成する手順の概要を次に示します。

  1. アプリをパッケージ化する前に。 次の手順に従って、アプリのパッケージ化の準備ができていることを確認します。

  2. プロジェクトを構成する。 Visual Studio マニフェスト デザイナーを使用してパッケージを構成します。 たとえば、タイル 画像を追加し、アプリでサポートされている向きを選択します。

  3. アプリ パッケージを生成する。 Visual Studio のパッケージ化ウィザードを使用して、アプリ パッケージを作成します。

  4. パッケージ化されたアプリケーションを実行、デバッグ、テストする。 アプリ パッケージの実行とデバッグは、Visual Studio から、あるいはパッケージを直接インストールして行います。

アプリをパッケージ化する前に

  1. アプリをテストする。 アプリケーションをパッケージ化する前に、サポート予定のすべてのデバイス ファミリで想定どおりに動作することを確認します。 これらのデバイス ファミリには、デスクトップ、モバイル、Surface Hub、Xbox、IoT デバイスなどが含まれます。 Visual Studio を使用してアプリをデプロイおよびテストする方法の詳細については、「UWP アプリの展開とデバッグ」を参照してください (パッケージ化されたデスクトップ アプリにも適用できます)。

  2. アプリを最適化する。 Visual Studio のプロファイリングおよびデバッグ ツールを使って、パッケージ化されたアプリケーションのパフォーマンスを最適化できます。 たとえば、UI の応答性のタイムライン ツール、メモリ使用量ツール、CPU 使用率ツールなどです。 これらのツールの詳細については、「プロファイリング機能ツアー」トピックを参照してください

  3. .NET ネイティブ互換性を確認する (VB と C# のアプリの場合)。 ユニバーサル Windows プラットフォームには、アプリのランタイム パフォーマンスを向上させるネイティブ コンパイラがあります。 この変更により、このコンパイル環境でアプリをテストする必要があります。 既定では、リリース ビルド構成により、.NET ネイティブ ツール チェーンが可能であるため、重要なのは、このリリース構成でアプリをテストし、想定どおりにアプリが動作することを確認することです。

プロジェクトを構成する

アプリ マニフェスト ファイル (Package.appxmanifest) は、アプリ パッケージの作成に必要なプロパティと設定を含む XML ファイルです。 たとえば、アプリ マニフェスト ファイルのプロパティは、アプリのタイルとして使用するイメージと、ユーザーがデバイスを回転するときにアプリがサポートする向きを示します。

Visual Studio マニフェスト デザイナーを使用すると、ファイルの生の XML を編集せずにマニフェスト ファイルを更新できます。

マニフェスト デザイナーを使用してパッケージを構成する

  1. ソリューション エクスプローラーで、アプリケーション プロジェクトのプロジェクト ノードを展開します。

  2. Package.appxmanifest ファイルをダブルクリックします。 マニフェスト ファイルが XML コード ビューで既に開いている場合は、ファイルを閉じるよう Visual Studio から求められます。

  3. これで、アプリの構成方法を決定できます。 各タブには、アプリに関して構成できる情報と、必要に応じて詳細情報へのリンクが含まれています。

    Manifest designer in Visual Studio

    [ビジュアル資産] タブで、アプリに必要なすべての画像があることを確認します。ここで、アプリのアイコンとロゴを指定します。

    [パッケージ化] タブでは、発行データを入力できます。 ここで、アプリの署名に使用する証明書を選択できます。 すべての MSIX アプリは証明書で署名する必要があります。

    Note

    Visual Studio 2019 以降では、パッケージ化されたデスクトップまたは UWP プロジェクトで一時的な証明書が生成されなくなりました。 証明書を作成またはエクスポートするには、こちらの記事に記載されている PowerShell コマンドレットを使用します。 Visual Studio の最近のバージョンでは、開発とテストのシナリオで Azure Key Vault に格納されている証明書を使用してアプリに署名することもできます。

    重要

    Microsoft Store でアプリを発行する場合、アプリは信頼できる証明書で署名されます。 これにより、ユーザーは、関連付けられているアプリ署名証明書をインストールせずにアプリをインストールして実行できます。

    アプリ パッケージをデバイスにインストールする場合、まずパッケージを信頼する必要があります。 パッケージを信頼するには、証明書をユーザーのデバイスにインストールする必要があります。

  4. アプリに必要な編集を 行った後、Package.appxmanifest ファイルを保存します。

Microsoft Store を使ってアプリを配布する場合、Visual Studio は Microsoft Store とパッケージを関連付けることができます。 これを行うには、ソリューション エクスプローラーでプロジェクト名を右クリックして、[発行]->[アプリケーションをストアと関連付ける] を選択します (Visual Studio 2019 バージョン 16.3 より前の場合、[発行] メニューの名前は [ストア] です)。 また、これはアプリ パッケージの作成ウィザードで実行することもできます。続くセクションで説明します。 アプリを関連付けると、マニフェスト デザイナーの [パッケージ化] タブの一部のフィールドが自動的に更新されます。

アプリ パッケージを生成する

Microsoft Intune や Configuration Manager などのアプリケーション管理ツールを使用して自分の Web サイトでアプリを公開すれば、Microsoft Store で公開しなくてもアプリをインストールすることができます。ローカル コンピューターまたはリモート コンピューターで、テスト用の MSIX パッケージを直接インストールすることもできます。

パッケージ化ウィザードを使用してアプリ パッケージを作成する

Note

次の手順とスクリーンショットは、Visual Studio 2019 バージョン 16.3 時点での説明です。 それより前のバージョンを使用している場合、UI の外観が異なることがあります。 デスクトップ アプリケーションをパッケージ化する場合、Windows アプリケーション パッケージ プロジェクト ノードを右クリックします。

  1. ソリューション エクスプローラーで、アプリケーション プロジェクトのソリューションを開きます。

  2. プロジェクトを右クリックし、[発行]->[アプリ パッケージの作成] を選択します (Visual Studio 2019 バージョン 16.3 より前の場合、[発行] メニューの名前は [ストア] です)。

    Context menu with navigation to Create App Packages

  3. ウィザードの最初のページで [サイドローディング] を選択し、[次へ] をクリックします。

    Create Your Packages dialog window shown with Sideloading

  4. [署名方法の選択] ページで、パッケージの署名をスキップするか、署名用の証明書を選択します。 ローカルの証明書ストアから証明書を選択するか、証明書ファイルを選択するか、新しい証明書を作成できます。 エンド ユーザーのコンピューターにインストールされる MSIX パッケージの場合、そのコンピューター上で信頼されている証明書で署名されている必要があります。

    Create Your Packages dialog window shown with Signing

  5. Visual Studio を使用してアプリ パッケージのアップロード ファイルを作成する」セクションで説明するように、[パッケージの選択と構成] ページを完成させます。

ダブルクリックでアプリ パッケージをインストールする

アプリ パッケージは、アプリ パッケージ ファイルをダブルクリックするだけでインストールできます。 そうするには、アプリ パッケージまたはアプリ バンドル ファイルに移動し、それをダブルクリックします。 アプリ インストーラーが起動し、アプリの基本情報と、インストール ボタン、インストール進行状況バー、関連するエラー メッセージが表示されます。

Note

アプリ インストーラーは、パッケージがデバイス上で信頼されている証明書で署名されていることを前提としています。 署名されていない場合は、デバイス上の信頼されたユーザー ストアまたは信頼された発行元証明機関ストアに署名証明書をインストールする必要があります。 これを行う方法がわからない場合は、「テスト証明書のインストール」を参照してください

インストール スクリプトを使用してアプリ パッケージをインストールする

  1. *_Test フォルダーを開きます。

  2. Add-AppDevPackage.ps1 ファイルを右クリックします。 [PowerShell で実行] を選択し、画面の指示に従います。
    File explorer navigated to PowerShell script shown

    アプリ パッケージがインストールされると、PowerShell ウィンドウに次のメッセージが表示されます。 アプリが正常にインストールされました。

  3. [スタート] ボタンをクリックしてアプリを名前で検索し、起動します。

次の手順: アプリ パッケージをデバッグおよびテストする

Visual Studio で、または Windows デバッグ ツールを使用してアプリケーションをデバッグする方法については、アプリ パッケージの実行、デバッグ、テストに関するページを参照してください。

Microsoft Store 申請のためのアプリ パッケージのアップロード ファイルを生成する

アプリを Microsoft Store に配布するには、アプリ パッケージのアップロード ファイル (.msixupload または .appxupload) を生成して、このファイルをパートナー センターに提出することをお勧めします。 アプリ パッケージまたはアプリ バンドルのみをパートナー センターに提出することも可能ですが、アプリ パッケージのアップロード ファイルを提出することをお勧めします。

アプリ パッケージのアップロード ファイルは、Visual Studio で [アプリ パッケージの作成] ウィザードを使用して作成するか、既存のアプリ パッケージまたはアプリ バンドルから手動で作成することができます。

Note

アプリ パッケージ (.msix または .appx) またはアプリ バンドル (.msixbundle または .appxbundle) を手動で作成する場合、MakeAppx.exe ツールを使ったアプリ パッケージの作成についての記事を参照してください。

Visual Studio を使用してアプリ パッケージのアップロード ファイルを作成する

Note

次の手順とスクリーンショットは、Visual Studio 2019 バージョン 16.3 時点での説明です。 それより前のバージョンを使用している場合、UI の外観が異なることがあります。

  1. ソリューション エクスプローラーで、UWP アプリ プロジェクトのソリューションを開きます。

  2. プロジェクトを右クリックし、[発行]->[アプリ パッケージの作成] を選択します (Visual Studio 2019 バージョン 16.3 より前の場合、[発行] メニューの名前は [ストア] です)。 このオプションが無効になっているか、まったく表示されない場合は、プロジェクトがユニバーサル Windows プロジェクトであることをチェックします。

    Context menu with navigation to Create App Packages

    アプリ パッケージの作成 ウィザードが表示されます。

  3. 最初のダイアログで [新しいアプリ名で Microsoft Store に] を選択し、[次へ] をクリックします。

    Create Your Packages dialog window shown with Microsoft Store

    プロジェクトがすでに Microsoft Store 内のアプリに関連付けられている場合、関連付けられている Microsoft Store アプリのパッケージを作成するオプションも表示されます。 [サイドローディング] を選択すると、Visual Studio では、パートナー センターへの申請のためのアプリ パッケージのアップロード ファイル (.msixupload または .appxupload) は生成されません。 Microsoft Store での配布以外の目的で MSIX パッケージまたはバンドルを作成したいだけの場合、このオプションを選択します。

  4. 次のページで、開発者アカウントを使用してパートナー センターにサインインします。 開発者アカウントがまだない場合は、ウィザードを使用して作成できます。

    Create App Packages window with app name selection shown

  5. アカウントに現在登録されているアプリのリストから、パッケージのアプリ名を選択するか、パートナー センターでまだ名前を予約していない場合は、新しく予約します。

  6. [パッケージの選択と構成] ダイアログで 3 つのアーキテクチャ構成 (x86、x64、ARM) をすべて選択して、アプリを最も幅広いデバイスに展開できることを確認します。 [アプリ バンドルの生成] リスト ボックスで、[常に] を選択します。 アプリ バンドル (.appxbundle または .msixbundle) は、プロセッサ アーキテクチャの種類ごとに構成されているアプリ パッケージのコレクションが含まれているため、単一のアプリ パッケージ ファイルよりも優先されます。 アプリ バンドルの生成を選ぶと、デバッグおよびクラッシュ分析情報と共に、アプリ バンドルが最終的なアプリ パッケージ アップロード (.appxupload または .msixupload) ファイルに含められます。 どのアーキテクチャを選択すべきかわからない場合や、さまざまなデバイスで使用されるアーキテクチャの詳細については、アプリ パッケージのアーキテクチャ に関するページをご参照ください。

    Create App Packages window with package configuration shown

  7. アプリが公開された後にパートナー センターからアプリのパフォーマンスを分析するために、パブリック シンボル ファイルを含めます。 バージョン番号やパッケージの出力場所などの追加の詳細を構成します。

  8. [作成] をクリックしてアプリ パッケージを生成します。 手順 3 で [Microsoft Store にアップロードするパッケージを作成します] のオプションのうちの 1 つを選択し、パートナー センターへの申請のためのパッケージを作成している場合、ウィザードではパッケージのアップロード ファイル (.appxupload または .msixupload) が作成されます。 手順 3 で[サイドロード用のパッケージを作成します] を選択した場合、ウィザードでは手順 6 の選択内容に基づいて、単一のアプリ パッケージまたはアプリ バンドルが作成されます。

  9. アプリのパッケージ化が成功すると、このダイアログが表示され、指定された出力場所からアプリ パッケージのアップロード ファイルを取得できます。 この時点で、ローカル コンピューターまたはリモート コンピューター上でアプリ パッケージを検証し、Microsoft Store 申請を自動化できます。

    Package creation completed window with validation options shown

アプリ パッケージのアップロード ファイルを手動で作成する

  1. フォルダー内に次のファイルを配置します。

    • 1 つまたは複数のアプリ パッケージ (.msix または .appx) またはアプリ バンドル (.msixbundle または .appxbundle)。
    • .appxsym ファイル。 これは、アプリのパブリック シンボルが格納された圧縮 .pdb ファイルです。これらのパブリック シンボルは、パートナー センターでのクラッシュ分析に使われます。 このファイルは省略できますが、アプリのクラッシュ分析やデバッグ情報は利用できなくなります。
  2. フォルダー内のすべてのファイルを選択して、ファイルを右クリックし、[送信]->[圧縮 (zip 形式) フォルダー] を選択します。

  3. 新しい zip ファイルの拡張子の名前を、.zip から .msixupload または .appxupload に変更します。

アプリ パッケージを検証する

認定のためにパートナー センターに提出する前に、ローカル コンピューターまたはリモート コンピューターでアプリを検証します。 デバッグ ビルドではなく、アプリ パッケージのリリース ビルドのみを検証できます。 パートナー センターへのアプリの申請について詳しくは、「アプリの申請」を参照してください。

アプリ パッケージをローカルで検証する

  1. アプリ パッケージの作成ウィザードの最後の [パッケージの作成が完了しました] ページで、[ローカル コンピューター] オプションを選択した状態で [Windows アプリ認定キットを起動する] をクリックします。 Windows アプリ認定キットを使用したアプリのテストの詳細については、「Windows アプリ認定キット」を参照してください

    Windows アプリ認定キット (WACK) はさまざまなテストを実行し、結果を返します。 詳細については、 Windows アプリ認定キットのテスト を参照してください。

    リモート Windows 10 デバイスを使ってテストする場合は、そのデバイスに Windows アプリ認定キットを手動でインストールする必要があります。 次のセクションでは、これらの手順について説明します。 これを完了したら、リモート コンピューターを選択し、[Windows アプリ認定キットの起動] をクリックしてリモート デバイスに接続し、検証テストを実行できます。

  2. WACK の完了後、アプリが認定に合格したら、パートナー センターにアプリを提出できるようになります。 正しいファイルをアップロードしてください。 ファイルは既定の位置は、ソリューションのルート フォルダー \[AppName]\AppPackages にあり、.appxupload または .msixupload というファイル拡張子が付いています。 パッケージ アーキテクチャがすべて選択されたアプリ バンドルを選んだ場合、名前は [AppName]_[AppVersion]_x86_x64_arm_bundle.appxupload または [AppName]_[AppVersion]_x86_x64_arm_bundle.msixupload の形式になります。

リモート Windows 10 デバイスでアプリ パッケージを検証する

  1. デバイスを開発用に有効にする」の手順に従って、開発用に Windows 10 デバイスを有効にします。

    重要

    Windows 10 のリモート ARM デバイスでアプリ パッケージを検証することはできません。

  2. Visual Studio 用のリモート ツールをダウンロードしてインストールします。 これらのツールは、Windows アプリ認定キットをリモートで実行するために使用されます。 これらのツールのダウンロード場所などの詳細については、リモート コンピューターでの MSIX アプリケーションの実行に関するページをご覧ください。

  3. 必要な Windows アプリ認定キットをダウンロードし、リモート Windows 10 デバイスにインストールします。

  4. ウィザードの [パッケージの作成が完了しました] ページで、[リモート コンピューター] オプション ボタンを選択し、[テスト接続] ボタンの横にある省略記号ボタンを選択します。

    Note

    [リモート コンピューター] オプション ボタンは、検証をサポートする 1 つ以上のソリューション構成を選択した場合にのみ使用できます。 WACK を使用したアプリのテストの詳細については、「Windows アプリ認定キット」を参照してください

  5. サブネット内のデバイス フォームを指定するか、サブネットの外部にあるデバイスの Doメイン ネーム サーバー (DNS) 名または IP アドレスを指定します。

  6. デバイスで Windows 資格情報を使用してログオンする必要がない場合は、[認証モード] の一覧で [なし] を選択します。

  7. [選択] ボタンを選択し、[Windows アプリ認定キットの起動] ボタンを選択します。 リモート ツールがそのデバイスで実行されている場合、Visual Studio はデバイスに接続し、検証テストを実行します。 Windows アプリ認定キットのテストを参照してください

Microsoft Store 申請の自動化

Visual Studio 2019 以降では、アプリ パッケージの作成ウィザードの最後にある [Windows アプリ認定キットの検証後に自動的に Microsoft Store に送信します] オプションを選択すれば、生成した .appxupload ファイルを IDE から直接 Microsoft Store に提出できます。 この機能は、アプリの公開に必要なパートナー センター アカウントの情報にアクセスするために、Azure Active Directory を利用します。 この機能を使用するには、Azure Active Directory をパートナー センター アカウントに関連付けて、申請に必要ないくつかの認証情報を取得する必要があります。

Azure Active Directory とパートナー センター アカウントとの関連付け

自動 Microsoft Store 申請に必要な認証情報を取得する前に、まだしていなければ、パートナー センター ダッシュボードで次の手順を実行する必要があります。

  1. パートナー センター アカウントと組織の Azure Active Directory を関連付けます。 組織で既に Office 365 または Microsoft の他のビジネス サービスを使用している場合は、Azure AD が既にあります。 それ以外の場合は、パートナー センター内から新しい Azure AD テナントを追加料金なしで作成できます。

  2. Azure AD アプリケーションをパートナー センター アカウントに追加します。 この Azure AD アプリケーションは、デベロッパー センター アカウントへの申請のために使用するアプリまたはサービスのことです。 このアプリケーションをマネージャー ロールに割り当てる必要があります。 このアプリケーションが Azure AD ディレクトリに既に存在する場合は、[Azure AD アプリケーションの追加] ページでアプリケーションを選択して、デベロッパー センター アカウントに追加できます。 それ以外の場合は、[Azure AD アプリケーションの追加] ページで新しい Azure AD アプリケーションを 作成できます。

申請に必要な認証情報を取得する

次に、申請に必要なパートナー センターの認証情報を取得します。Azure テナント IDクライアント IDクライアント キーです。

  1. パートナー センター ダッシュボードに移動し、Azure AD の認証情報でサインインします。

  2. パートナー センター ダッシュボードで、歯車アイコン (ダッシュボードの右上隅の近く) を選択し、[開発者向け設定] を選択します。

  3. 左側ペインの [設定] メニューで、[ユーザー] をクリックします。

  4. Azure AD アプリケーションの名前をクリックして、アプリケーションの設定に移動します。 このページで、[テナント ID][クライアント ID] の値をコピーします。

  5. [キー] セクションで、[新しいキーを追加] をクリックします。 次の画面で、クライアント シークレットに対応する [キー] の値をコピーします。 このページを離れるとこの情報には二度とアクセスできなくなるため、なくさないようにしてください。 詳細については、「Azure AD アプリケーションのキーを管理する」を参照してください。

Visual Studio で自動 Microsoft Store 申請を構成する

ここまでの手順を終えたら、Visual Studio 2019 で自動 Microsoft Store 申請を構成できます。

  1. アプリ パッケージの作成ウィザードの最後で、[Windows アプリ認定キットの検証後に自動的に Microsoft Store に送信します] を選択して、[再構成] をクリックします。

  2. [Microsoft Store 送信設定の構成] ダイアログで、Azure テナント ID、クライアント ID、クライアント キーを入力します。

    Configure Microsoft Store Submission settings

    重要

    将来の申請で使用できるように、認証情報をプロファイルに保存することができます

  3. OK をクリックします。

WACK テストが完了すると、申請が開始します。 [確認と発行] ウィンドウで、申請の進行状況を追跡できます。

Verify and Publish progress