Win32アプリをWindowsストアで公開するには? Microsoft Desktop Bridgeセミナー開催

2017年3月10日(金)
高橋 正和

Windows 10では、アプリケーションをスマートフォンのアプリのように「Windowsストア」で世界中に公開し、インストールさせることができる。そのためにはアプリのインストーラーをUWP(Universal Windows Platform)形式のアプリパッケージにする必要がある。

Microsoftでは、従来のWin32デスクトップアプリのインストーラーをUWP形式のアプリパッケージ(Appxパッケージ)に変換するための「Desktop Bridge」を用意している。このDesktop Bridgeについて、セミナーと実習で学ぶセミナー「Microsoft Desktop Bridgeセミナー」を、日本マイクロソフトが2月18日に開催した。

荒井省三氏と高橋忍氏の2人のテクニカルエバンジェリストが講師となり、荒井氏が最後に語ったところによると「ここまで詳しく説明したのは初めて。最近追加された内容はドキュメントにも反映されていない」という、濃いセミナーとなった。

荒井省三氏
荒井省三氏
高橋忍氏
高橋忍氏

Win32アプリのインストーラーをDACで変換

午前にはセミナーとして荒井氏が、Win32デスクトップアプリを変換してWindowsストアで公開できるようにする方法について、変換ツール「Desktop App Converter(DAC)」を中心に解説した。

荒井氏はまずWin32アプリからUWPアプリに移行する選択肢として、Windowsストアで公開するところまでの「従来のまま」と、通知やタイルなどのWindows 10の機能を使えるようにする「拡張」、UWPとして最適化する「モダナイズ」の3レベルを紹介した。今回のセミナーの内容は「従来のまま」に相当する。

また、アプリの変換方法については、DACのほか、ファイルコピー程度のインストールであれば手作業による変換も難しくないと荒井氏は説明した。また、InstallShield 2016ではDesktop Bridgeに対応しており、DACで変換できないものをInstallShieldで対応したケースもあるという。

Win32アプリからUWPアプリに移行する3レベル
Win32アプリからUWPアプリに移行する3レベル
DACのほか、手作業やInstallShieldによる方法も
DACのほか、手作業やInstallShieldによる方法も

DACを動かすには、Windows 10 Anniversary Update以降と、仮想化支援機能SLATに対応したCPU、最新のWindows SDKが必要となる。そこにDACをインストールし、DACのベースイメージをダウンロードする。

DACの動作メカニズムについても荒井氏は解説した。DACでは、元のインストーラーをWindowsコンテナーによる仮想的な環境で実行し、追加や変更されたファイルをトラッキングし、結果を取り出してAppxパッケージにまとめる。SLATが必要なのも、Windowsコンテナーを使うからだという。また、裏側でインストーラーを動かすという仕組み上、インストーラーがダイアログを表示してユーザーに聞いてくるようではそこで止まってしまうため、インストーラーのオプションなどで指定してサイレントインストールできるようになっている必要がある。

DACのパラメータ
DACのパラメータ
DACの動作メカニズム
DACの動作メカニズム

Appxパッケージには最終的に電子署名をする。変換時に署名するよう指定することもできるが、何度も実行テストをすることを考えると、完成してから署名するほうをおすすめすると荒井氏は語った。

そのほか、リソースの用意や、ドライバーはインストールできないこと、DACを使わずに手作業で変換する場合の手順、マニフェストファイルのAppManifestなどが説明された。

Appxパッケージへの殿試署名
Appxパッケージへの電子署名
AppManifestファイル
AppManifestファイル

荒井氏はさらに、純粋UWPアプリと変換したアプリの実行モデルの違いも解説した。純粋UWPアプリはCreateProcessされずDCOM RPCで起動されるのに対し、変換したアプリはCreateProcessされて動くという。

純粋UWPアプリと変換したアプリの実行モデルの違い
純粋UWPアプリと変換したアプリの実行モデルの違い

作業の最後として、ストアに提出する方法が解説された。変換したアプリの場合は事前申請が必要となるという。変換するアプリなので申請の中に公式ページのURLを指定し、それをもとに日本の担当者が割り当てられるという。そのほか、申請するときの注意事項も説明された。

最後に荒井氏は、Windowsストアで公開するメリットとして、Windowsストアに公開するとグローバルで公開されることを上げ、日本人が作ったストレージベンチマークソフト「CrystalDiskMark」がWindowsストアに公開したところ世界中からコメントが来た事例を紹介した。

ストアへの提出の流れ
ストアへの提出の流れ

DACを使って変換を各自試す

午後は実習だ。自分のアプリを変換したい人はそれを、特に用意していない人は動画再生ソフトの「VLC」を、各自で用意された手順書を参考に変換した。なお、VLCを題材にしたのは、インストーラーが素直だからだという。

参加者でうまくいかないところは、荒井氏と高橋氏がサポートした。この日も、Windowsコンテナーのセットアップでハマったケースや、変換するインストーラーがGUIで質問を表示して止まるケースなどがあったようだ。

また、拡張子の関連付けをDACがうまく検出できない場合に自分でAppManifestに書く方法や、アイコンは1つだけしか追加できないので複数の実行ファイルを登録するにはそのためのコードを追加する必要があることなども解説された。

VLCをDACで変換
VLCをDACで変換
実習の手順書
実習の手順書
実習の様子
実習の様子
うまくいかないところを荒井氏と高橋氏がサポート
うまくいかないところを荒井氏と高橋氏がサポート

ストアへの登録は、高橋氏がデモしながら解説した。価格や、配布先の選択、一時的なキャンペーン、ストアでの非表示設定、プロパティ、年齢区分、デバイスの種類などの設定を、グローバルで公開するときの注意もまじえて説明した。

ストアに登録する
ストアに登録する

フリーランスのライター&編集者。IT系の書籍編集、雑誌編集、Web媒体記者などを経てフリーに。現在、「クラウドWatch」などのWeb媒体や雑誌などに幅広く執筆している。なお、同姓同名の方も多いのでご注意。

連載バックナンバー

仮想化/コンテナイベント

KubeCon報告からKubernetes対応版Dockerまで、Docker Meetup Tokyo #20開催

2018/1/30
コンテナーに関する勉強会「Docker Meetup Tokyo #20」が、2017年12月14日に開催された。11月に開催された「Docker Meetup Tokyo #19」に続く回となった。
仮想化/コンテナ

Red Hatが示したOpenShiftの将来とは

2018/1/24
Red Hatが推進するコンテナープラットフォームであるOpenShiftの1dayカンファレンスが開催された。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています