Visual Studio でデスクトップ アプリや UWP アプリをパッケージ化する
アプリは、配布する前にパッケージ化する必要があります。 この記事では、Visual Studio を使って MSIX パッケージを構成、作成、テストする方法について説明します。
アプリ パッケージの種類
アプリ パッケージ (.msix または .appx)
アプリケーションとそのリソースを含む単一のパッケージで、単一のデバイス アーキテクチャを対象とします。 たとえば、x64 や x86 のアプリケーション パッケージです。 アプリ バンドルにより複数のアーキテクチャを対象とするには、アーキテクチャそれぞれに対してパッケージを 1 つずつ作成する必要があります。アプリ バンドル (.msixbundle または .appxbundle)
アプリ バンドルは、複数のアプリ パッケージを含めることができるパッケージの種類であり、それぞれ特定のデバイス アーキテクチャをサポートするようにビルドされます。 たとえば、アプリ バンドルには x86、x64、および ARM 構成用の別個のアプリ パッケージを含めることができます。 アプリ バンドルによってできる限り広範なデバイスでアプリが利用できるようになるため、アプリ バンドルは可能であれば必ず生成してください。アプリ パッケージのアップロード ファイル (.msixupload または .appxupload) - Microsoft Store 申請のみ
さまざまなプロセッサ アーキテクチャをサポートする複数のアプリ パッケージまたは 1 つのアプリ バンドルを含めることができる 1 つのファイルです。 アプリ パッケージのアップロード ファイルには、アプリが Microsoft Store に公開された後にアプリのパフォーマンスを分析するためのシンボル ファイルも含められます。 Microsoft Store で公開するためにパートナー センターに提出する目的で、Visual Studio を使ってアプリをパッケージングする際、このファイルは自動的に作成されます。
アプリ パッケージを準備して作成する手順の概要は次のとおりです。
アプリ パッケージを作成する前に。 次の手順に従って、アプリのパッケージ化の準備ができていることを確認します。
プロジェクトを構成する。 Visual Studio マニフェスト デザイナーを使って、パッケージを構成します。 たとえば、タイル画像を追加し、アプリでサポートされる向きを選びます。
アプリ パッケージを生成する。 Visual Studio のパッケージ化ウィザードを使用して、アプリ パッケージを作成します。
パッケージ化されたアプリケーションを実行、デバッグ、テストする。 アプリ パッケージの実行とデバッグは、Visual Studio から、あるいはパッケージを直接インストールして行います。
アプリ パッケージを作成する前に
アプリをテストします。 アプリケーションをパッケージ化する前に、サポート予定のすべてのデバイス ファミリで想定どおりに動作することを確認します。 これらのデバイス ファミリには、デスクトップ、モバイル、Surface Hub、Xbox、IoT デバイスなどが含まれる場合があります。 Visual Studio を使用してアプリをデプロイおよびテストする方法の詳細については、「UWP アプリの展開とデバッグ」を参照してください (パッケージ化されたデスクトップ アプリにも適用できます)。
アプリを最適化する。 Visual Studio のプロファイリングおよびデバッグ ツールを使って、パッケージ化されたアプリケーションのパフォーマンスを最適化できます。 たとえば、UI 応答のタイムライン ツール、メモリ使用率のツール、CPU 使用率のツールを使えます。 これらのコマンド ライン ツールについて詳しくは、プロファイリング機能ツアーに関するページをご覧ください。
.NET ネイティブ互換性を確認する (VB と C# のアプリの場合)。 ユニバーサル Windows プラットフォームには、アプリの実行時のパフォーマンスを向上させるネイティブ コンパイラがあります。 この変更により、新しいコンパイル環境でアプリをテストする必要があります。 既定では、リリース ビルド構成により、.NET ネイティブ ツール チェーンが可能であるため、重要なのは、このリリース構成でアプリをテストし、想定どおりにアプリが動作することを確認することです。
プロジェクトを構成する
アプリ マニフェスト ファイル (Package.appxmanifest) は、アプリ パッケージの作成に必要なプロパティと設定が含まれている XML ファイルです。 たとえば、アプリ マニフェスト ファイル内のプロパティには、アプリのタイルとして使う画像や、ユーザーがデバイスを回転するときにアプリでサポートされる向きを定義します。
Visual Studio のマニフェスト デザイナーを使えば、生の XML を編集することなくマニフェスト ファイルを更新できます。
マニフェスト デザイナーを使ってパッケージを構成する
ソリューション エクスプローラーで、アプリケーション プロジェクトのプロジェクト ノードを展開します。
[Package.appxmanifest] ファイルをダブルクリックします。 マニフェスト ファイルが既に XML コード ビューで開かれている場合は、ファイルを閉じるよう指示するプロンプトが Visual Studio で表示されます。
この時点で、アプリをどのように構成するかを決めることができます。 各タブには、アプリについて構成可能な情報や、さらに情報が必要なときのためのリンクがあります。
[ビジュアル資産] タブで、アプリに必要なすべての画像があることを確認します。ここで、アプリのアイコンとロゴを指定します。
[パッケージ化] タブで、公開するデータを入力できます。 ここで、アプリの署名に使う証明書を選べます。 すべての MSIX アプリは証明書で署名する必要があります。
注意
Visual Studio 2019 以降では、パッケージ化されたデスクトップまたは UWP プロジェクトで一時的な証明書が生成されなくなりました。 証明書を作成またはエクスポートするには、こちらの記事に記載されている PowerShell コマンドレットを使用します。 Visual Studio の最近のバージョンでは、開発とテストのシナリオで Azure Key Vault に格納されている証明書を使用してアプリに署名することもできます。
重要
Microsoft Store でアプリを公開する場合、アプリが信頼済み証明書で自動的に署名されます。 これにより、ユーザーは関連付けられているアプリの署名証明書をインストールしなくてもアプリをインストールして実行できます。
アプリ パッケージをデバイスにインストールする場合、まずパッケージを信頼する必要があります。 パッケージを信頼するには、証明書がユーザーのデバイスにインストールされていなければなりません。
アプリに必要な編集を行った後に、Package.appxmanifest ファイルを保存します。
Microsoft Store を使ってアプリを配布する場合、Visual Studio は Microsoft Store とパッケージを関連付けることができます。 これを行うには、ソリューション エクスプローラーでプロジェクト名を右クリックして、[発行]->[アプリケーションをストアと関連付ける] を選択します (Visual Studio 2019 バージョン 16.3 より前の場合、[発行] メニューの名前は [ストア] です)。 また、これはアプリ パッケージの作成ウィザードで実行することもできます。続くセクションで説明します。 アプリを関連付けると、マニフェスト デザイナーの [パッケージ化] タブの一部のフィールドが自動的に更新されます。
アプリ パッケージを生成する
Microsoft Intune や Configuration Manager などのアプリケーション管理ツールを使用して自分の Web サイトでアプリを公開すれば、Microsoft Store で公開しなくてもアプリをインストールすることができます。ローカル コンピューターまたはリモート コンピューターで、テスト用の MSIX パッケージを直接インストールすることもできます。
パッケージ化ウィザードを使用してアプリ パッケージを作成する
注意
次の手順とスクリーンショットは、Visual Studio 2019 バージョン 16.3 時点での説明です。 それより前のバージョンを使用している場合、UI の外観が異なることがあります。 デスクトップ アプリケーションをパッケージ化する場合、Windows アプリケーション パッケージ プロジェクト ノードを右クリックします。
ソリューション エクスプローラーで、アプリケーション プロジェクトのソリューションを開きます。
プロジェクトを右クリックし、[発行]->[アプリ パッケージの作成] を選択します (Visual Studio 2019 バージョン 16.3 より前の場合、[発行] メニューの名前は [ストア] です)。
ウィザードの最初のページで [サイドローディング] を選択し、[次へ] をクリックします。
[署名方法の選択] ページで、パッケージの署名をスキップするか、署名用の証明書を選択します。 ローカルの証明書ストアから証明書を選択するか、証明書ファイルを選択するか、新しい証明書を作成できます。 エンド ユーザーのコンピューターにインストールされる MSIX パッケージの場合、そのコンピューター上で信頼されている証明書で署名されている必要があります。
「Visual Studio を使用してアプリ パッケージのアップロード ファイルを作成する」セクションで説明するように、[パッケージの選択と構成] ページを完成させます。
ダブルクリックでアプリ パッケージをインストールする
アプリ パッケージは、アプリ パッケージ ファイルをダブルクリックするだけでインストールできます。 そうするには、アプリ パッケージまたはアプリ バンドル ファイルに移動し、それをダブルクリックします。 アプリ インストーラーが起動し、アプリの基本情報と、インストール ボタン、インストール進行状況バー、関連するエラー メッセージが表示されます。
注意
アプリ インストーラーは、パッケージがデバイス上で信頼されている証明書で署名されていることを前提としています。 署名されていない場合は、デバイス上の信頼されたユーザー ストアまたは信頼された発行元証明機関ストアに署名証明書をインストールする必要があります。 この方法がわからない場合は、テスト証明書のインストールに関するページをご覧ください。
インストール スクリプトを使用してアプリ パッケージをインストールする
*_Test
フォルダーを開きます。Add-AppDevPackage.ps1 ファイルを右クリックします。 [PowerShell で実行] を選んで、画面の指示に従います。
アプリ パッケージがインストールされると、PowerShell のウィンドウで "アプリが正常にインストールされました" というメッセージが表示されます。
スタート ボタンをクリックし、アプリをアプリ名で検索してから起動します。
次の手順: アプリ パッケージをデバッグおよびテストする
Visual Studio で、または Windows デバッグ ツールを使用してアプリケーションをデバッグする方法については、アプリ パッケージの実行、デバッグ、テストに関するページを参照してください。
Microsoft Store 申請のためのアプリ パッケージのアップロード ファイルを生成する
アプリを Microsoft Store に配布するには、アプリ パッケージのアップロード ファイル (.msixupload または .appxupload) を生成して、このファイルをパートナー センターに提出することをお勧めします。 アプリ パッケージまたはアプリ バンドルのみをパートナー センターに提出することも可能ですが、アプリ パッケージのアップロード ファイルを提出することをお勧めします。
アプリ パッケージのアップロード ファイルは、Visual Studio で [アプリ パッケージの作成] ウィザードを使用して作成するか、既存のアプリ パッケージまたはアプリ バンドルから手動で作成することができます。
注意
アプリ パッケージ (.msix または .appx) またはアプリ バンドル (.msixbundle または .appxbundle) を手動で作成する場合、MakeAppx.exe ツールを使ったアプリ パッケージの作成についての記事を参照してください。
Visual Studio を使用してアプリ パッケージのアップロード ファイルを作成する
注意
次の手順とスクリーンショットは、Visual Studio 2019 バージョン 16.3 時点での説明です。 それより前のバージョンを使用している場合、UI の外観が異なることがあります。
ソリューション エクスプローラーで、UWP アプリ プロジェクトのソリューションを開きます。
プロジェクトを右クリックし、[発行]->[アプリ パッケージの作成] を選択します (Visual Studio 2019 バージョン 16.3 より前の場合、[発行] メニューの名前は [ストア] です)。 このオプションが無効になっているか、まったく表示されない場合は、プロジェクトがユニバーサル Windows プロジェクトであることを確認します。
アプリ パッケージの作成ウィザードが表示されます。
最初のダイアログで [新しいアプリ名で Microsoft Store に] を選択し、[次へ] をクリックします。
プロジェクトがすでに Microsoft Store 内のアプリに関連付けられている場合、関連付けられている Microsoft Store アプリのパッケージを作成するオプションも表示されます。 [サイドローディング] を選択すると、Visual Studio では、パートナー センターへの申請のためのアプリ パッケージのアップロード ファイル (.msixupload または .appxupload) は生成されません。 Microsoft Store での配布以外の目的で MSIX パッケージまたはバンドルを作成したいだけの場合、このオプションを選択します。
次のページで、開発者アカウントを使用してパートナー センターにサインインします。 まだ開発者アカウントがない場合は、ウィザードで作成できます。
アカウントに現在登録されているアプリのリストから、パッケージのアプリ名を選択するか、パートナー センターでまだ名前を予約していない場合は、新しく予約します。
必ず、[パッケージの選択と構成] ダイアログ ボックスで 3 つのアーキテクチャ構成 (x86、x64、ARM) をすべて選択し、できるだけ広範なデバイスにアプリを展開できるようにしてください。 [アプリケーション バンドルの生成] ボックスで [常に行う] を選びます。 アプリ バンドル (.appxbundle または .msixbundle) は、プロセッサ アーキテクチャの種類ごとに構成されているアプリ パッケージのコレクションが含まれているため、単一のアプリ パッケージ ファイルよりも優先されます。 アプリ バンドルの生成を選ぶと、デバッグおよびクラッシュ分析情報と共に、アプリ バンドルが最終的なアプリ パッケージ アップロード (.appxupload または .msixupload) ファイルに含められます。 どのアーキテクチャを選べばよいかわからない場合や、各種デバイスにより使用されるアーキテクチャについて詳しく調べる場合は、「アプリ パッケージのアーキテクチャ」をご覧ください。
アプリが公開された後にパートナー センターからアプリのパフォーマンスを分析するために、パブリック シンボル ファイルを含めます。 バージョンの番号付けやパッケージの出力場所など、他の詳細情報を構成します。
[作成] をクリックして、アプリ パッケージを生成します。 手順 3 で [Microsoft Store にアップロードするパッケージを作成します] のオプションのうちの 1 つを選択し、パートナー センターへの申請のためのパッケージを作成している場合、ウィザードではパッケージのアップロード ファイル (.appxupload または .msixupload) が作成されます。 手順 3 で[サイドロード用のパッケージを作成します] を選択した場合、ウィザードでは手順 6 の選択内容に基づいて、単一のアプリ パッケージまたはアプリ バンドルが作成されます。
アプリのパッケージ化が成功すると、このダイアログが表示され、指定された出力場所からアプリ パッケージのアップロード ファイルを取得できます。 この時点で、ローカル コンピューターまたはリモート コンピューター上でアプリ パッケージを検証し、Microsoft Store 申請を自動化できます。
アプリ パッケージのアップロード ファイルを手動で作成する
フォルダー内に次のファイルを配置します。
- 1 つまたは複数のアプリ パッケージ (.msix または .appx) またはアプリ バンドル (.msixbundle または .appxbundle)。
- .appxsym ファイル。 これは、アプリのパブリック シンボルが格納された圧縮 .pdb ファイルです。これらのパブリック シンボルは、パートナー センターでのクラッシュ分析に使われます。 このファイルは省略できますが、アプリのクラッシュ分析やデバッグ情報は利用できなくなります。
フォルダー内のすべてのファイルを選択して、ファイルを右クリックし、[送信]->[圧縮 (zip 形式) フォルダー] を選択します。
新しい zip ファイルの拡張子の名前を、.zip から .msixupload または .appxupload に変更します。
アプリ パッケージを検証する
認定のためにパートナー センターに提出する前に、ローカル コンピューターまたはリモート コンピューターでアプリを検証します。 アプリ パッケージのデバッグ ビルドではなくリリース ビルドのみを検証できます。 パートナー センターへのアプリの申請について詳しくは、「アプリの申請」を参照してください。
アプリ パッケージをローカルで検証する
アプリ パッケージの作成ウィザードの最後の [パッケージの作成が完了しました] ページで、[ローカル コンピューター] オプションを選択した状態で [Windows アプリ認定キットを起動する] をクリックします。 Windows アプリ認定キットでアプリをテストする方法について詳しくは、「Windows アプリ認定キット」をご覧ください。
Windows アプリ認定キット (WACK) はさまざまなテストを実行し、結果を返します。 より具体的な情報については、「Windows アプリ認定キットのテスト」をご覧ください。
リモート Windows 10 デバイスを使ってテストする場合は、そのデバイスに Windows アプリ認定キットを手動でインストールする必要があります。 この手順については、次のセクションで説明します。 その後、[リモート コンピューター] を選び、[Windows アプリ認定キットを起動する] をクリックしてリモート デバイスに接続し、検証テストを実行します。
WACK の完了後、アプリが認定に合格したら、パートナー センターにアプリを提出できるようになります。 必ず正しいファイルをアップロードしてください。 ファイルは既定の位置は、ソリューションのルート フォルダー
\[AppName]\AppPackages
にあり、.appxupload または .msixupload というファイル拡張子が付いています。 パッケージ アーキテクチャがすべて選択されたアプリ バンドルを選んだ場合、名前は[AppName]_[AppVersion]_x86_x64_arm_bundle.appxupload
または[AppName]_[AppVersion]_x86_x64_arm_bundle.msixupload
の形式になります。
リモート Windows 10 デバイスでアプリ パッケージを検証する
「デバイスを開発用に有効にする」の手順に従って、開発用に Windows 10 デバイスを有効にします。
重要
Windows 10 のリモート ARM デバイスでアプリ パッケージを検証することはできません。
Visual Studio のリモート ツールをダウンロードしてインストールします。 これらのツールを使って Windows アプリ認定キットをリモートで実行します。 これらのツールのダウンロード場所などの詳細については、リモート コンピューターでの MSIX アプリケーションの実行に関するページをご覧ください。
必要な Windows アプリ認定キットをダウンロードし、リモート Windows 10 デバイスにインストールします。
パッケージの作成が完了しましたウィザードのページで、[リモート コンピューター] オプション ボタンを選び、[テスト接続] ボタンの横にある省略記号ボタンをクリックします。
注意
[リモート コンピューター] オプション ボタンは、検証をサポートする 1 つ以上のソリューション構成を選択した場合にのみ使用できます。 WACK でアプリをテストする方法について詳しくは、「Windows アプリ認定キット」をご覧ください。
サブネットの内部にあるデバイスの形式を指定するか、サブネットの外部にあるデバイスのドメイン ネーム サーバー (DNS) 名または IP アドレスを指定します。
Windows 資格情報を使ってデバイスにログオンする必要がない場合は、[認証モード] ボックスの一覧で [なし] を選びます。
[選択]、[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 申請に必要な認証情報を取得する前に、まだしていなければ、パートナー センター ダッシュボードで次の手順を実行する必要があります。
パートナー センター アカウントと組織の Azure Active Directory を関連付けます。 組織で Office 365 または Microsoft の他のビジネス サービスが既に使用されている場合は、既に Azure AD をお持ちです。 それ以外の場合は、パートナー センター内から新しい Azure AD テナントを追加料金なしで作成できます。
Azure AD アプリケーションをパートナー センター アカウントに追加します。 この Azure AD アプリケーションは、デベロッパー センター アカウントへの申請のために使用するアプリまたはサービスのことです。 このアプリケーションをマネージャー ロールに割り当てる必要があります。 このアプリケーションが既に Azure AD ディレクトリに存在する場合、[Azure AD アプリケーションの追加] ページで選んでデベロッパー センター アカウントに追加できます。 それ以外の場合、[Azure AD アプリケーションの追加] ページで新しい Azure AD アプリケーションを作成できます。
申請に必要な認証情報を取得する
次に、申請に必要なパートナー センターの認証情報を取得します。Azure テナント ID、クライアント ID、クライアント キーです。
パートナー センター ダッシュボードに移動し、Azure AD の認証情報でサインインします。
パートナー センター ダッシュボードで、歯車アイコン (ダッシュボードの右上隅の近く) を選択し、[開発者向け設定] を選択します。
左側ペインの [設定] メニューで、[ユーザー] をクリックします。
Azure AD アプリケーションの名前をクリックして、アプリケーションの設定に移動します。 このページで、[テナント ID] と [クライアント ID] の値をコピーします。
[キー] セクションで、[新しいキーを追加] をクリックします。 次の画面で、クライアント シークレットに対応する [キー] の値をコピーします。 このページを離れるとこの情報には二度とアクセスできなくなるため、なくさないようにしてください。 詳細については、「Azure AD アプリケーションのキーを管理する」を参照してください。
Visual Studio で自動 Microsoft Store 申請を構成する
ここまでの手順を終えたら、Visual Studio 2019 で自動 Microsoft Store 申請を構成できます。
アプリ パッケージの作成ウィザードの最後で、[Windows アプリ認定キットの検証後に自動的に Microsoft Store に送信します] を選択して、[再構成] をクリックします。
[Microsoft Store 送信設定の構成] ダイアログで、Azure テナント ID、クライアント ID、クライアント キーを入力します。
重要
将来の申請で使用できるように、認証情報をプロファイルに保存することができます
[OK] をクリックします。
WACK テストが完了すると、申請が開始します。 [確認と発行] ウィンドウで、申請の進行状況を追跡できます。