デスクトップアプリケーションを Microsoft ストアで公開する part1
環境
- Windows
-
- Windows 10
- Visual Studio
-
- Visual Studio 2019
※他のバージョンでも動作しますが未確認です
はじめに
従来Microsoftストアで公開できるアプリケーションは「UWP」形式のみでしたが、「Desktop Bridge」を使用することによって Windows FormやWPF, Win32などで作成したデスクトップアプリケーションもMicrosoftストアで公開できるようになりました。
本記事では比較的簡単な方法でデスクトップアプリケーションを公開するためのパッケージを作成する手順について説明します。
ただし注意点としてパッケージ化してインストールしたアプリケーションは 従来のZIP(EXE)配布やインストーラー形式(MSI)で配布して実行したときの実行環境とは異なりますので、移行したものが100%正常に動作するという保証はありません。 デスクトップアプリケーションをストアで配布しようと考えている方は、必ずパッケージ化した後に動作チェックを行うことをお勧めします。 場合によってはストア向けにプログラムを修正する必要があります。
事前準備
- 公開するデスクトップアプリケーションをVisual Studioで制作し完了していること
- Microsoftストアでアプリケーションが公開できるようにアカウント登録を行っていること(Microsoftストアでのアカウント作成は本題ではないのですでに他のアプリを公開できている状態が望ましいです)
パッケージプロジェクトの作成
Visual Studioで作成したデスクトップアプリケーションのプロジェクトを開きます。 ここでは私が制作した2つのデータベースのテーブルレイアウトを同期させることができるツール「TableLayoutSyncer」を例に紹介します。
ソリューションで新しいプロジェクトを追加します。
テンプレートから「Windows アプリケーション パッケージ プロジェクト」を選択して追加します。 プロジェクト名はなんでもいいですがここでは「Setup」としています。
Windows 10のターゲットプラットフォームを選択します。ターゲットバージョンは基本的に最新で問題ありません。 最小バージョンについては使用する機能やライブラリのバージョンに合わせて決定してください。
パッケージプロジェクトが追加されます。
パッケージプロジェクトの設定
プロジェクトの参照
どのプロジェクトをパッケージに含めるかを設定します。「アプリケーション」を右クリックして「参照の追加」を選択します。
含めるプロジェクトを選択します。 EXEのプロジェクトが直接参照しているライブラリプロジェクトについては自動的に参照されるのでチェックする必要はありません。
アプリケーションとストアを関連付け
すでにMicrosoftストア側にアカウントがある場合、公開するアプリケーションとストアの情報を紐づけておきます。 パッケージプロジェクトを右クリックして「公開」「アプリケーションをストアと関連付ける」を選択します。
「次へ」を選択します。
Microsoftストア側にまだアプリケーションの情報を登録していない場合は下の「新しいアプリケーション名を予約」に名前を入れて「予約」ボタンをクリックします。
予約後、またはすでにMicrosoftストア側にアプリケーションの情報を登録している場合は一覧にアプリケーション名が表示されるので その中から紐づけるアプリケーションを選択します。
「関連付け」ボタンをクリックします。
Package.appxmanifest の編集
公開するアプリケーションの設定を行うための「Package.appxmanifest」を編集します。 中身はUWPアプリケーションを作成する場合とほぼ同じなのでデスクトップ特有の部分だけ書いておきます。
アプリケーション
ストアと関連付けていれば「表示名」は同じ名前になっていると思います。
「説明」にアプリケーションの説明を入力します。
「サポートされる回転」はデスクトップアプリケーションなので何もつけなくていいです。
ビジュアル資産
Microsoft ストアでは使用者の利用形態に合わせて様々なサイズのアプリ用の画像を用意しておく必要があります。 全てのサイズを用意する必要はありませんが、全て用意するのに必要な数は数十種類にもなります。
とりあえずアプリ用のアイコン画像をひとつ用意しておき「資産ジェネレーター」を使うことによって 必要なサイズを一括で作成することもできます。 ただ必ずしも期待したイメージにならない場合もありますのでその時は個別に画像を調整してください。
機能
公開するアプリケーションがどのような機能を使用するかを設定します。
ですがデスクトップアプリケーションでは基本的に機能制約はありませんのでこの項目を設定する意味はありません。
宣言
必要であれば設定してください。
コンテンツ URI
必要であれば設定してください。
パッケージ化
ストアの関連付けを行っている場合はその値が設定されているのでそのまま使用します。
設定が終わったら保存します。
パッケージのテスト
パッケージが正常にインストールされて実行できるか確認します。 パッケージプロジェクトを右クリックして「デバッグ」「新しいインスタンスを開始」を選択します。
プログラムが正常に動作するか確認します。
スタートメニューに登録されているか確認します。
パッケージの作成
アプリケーションを公開するためのパッケージを作成します。 パッケージプロジェクトを右クリックして「公開」「アプリ パッケージの作成」を選択します。
「<アカウント名>により<アプリケーション名>としてMicrosoftストアに」を選択して「次へ」を選択します。
バージョンをアプリケーションに合わせて修正を行います。
アーキテクチャではリリース対象のプラットフォームにチェックを入れておきます。 デスクトップアプリケーションの場合は通常「x86」「x64」にチェックを入れることになります。 Any CPUだとパッケージの作成に失敗する場合があるので、事前にEXEのプロジェクトでx86とx64のアーキテクチャを作成しておきましょう。
ソリューション構成がReleaseになっていることも忘れずに確認しておきます。
ビルドが正常に終了したら次の画面が表示されます。
パッケージは「出力場所」に生成されているので後でアップロードするためにリンクをクリックしてエクスプローラーを開いておきます。
今回は初回登録なのでMicrosoft Storeに自動送信はしません。
パッケージとアプリが正常に動作するか確認するために「Windows アプリ認定キットを起動する」のボタンをクリックして動作確認をします。
パッケージ出力先にパッケージが作成されていることを確認します。 拡張子が「.appxupload」のファイルをMicrosoftストアに登録することになります。
まとめ
ローカル環境で行うパッケージ作成作業は以上となります。 次回はMicrosoftストア側で公開設定を行いたいと思います。