日本マイクロソフト主催の「Microsoft Desktop Bridge セミナー」に参加してきました。
参加前は Desktop Bridge についての不明点が多々ありましたが、いくつか質問して確認できたので、わかった点を含めて概要をまとめておきます(概要のみで実際の変換手順等は記載していません)。
Desktop Bridge と Desktop App Converter
Desktop Bridge は既存の Win32 アプリや .NET アプリ(サポートしているのは .NET 4.6.1)を、Windows ストアから配布するためのものです。
Windows ストアにあげるには、アプリをストアにあげるための形式(Appx パッケージ)にする必要がありますが、このパッケージを作成する(=変換する)ためのツールが Desktop App Converter(以降「DAC」と表記) です。
なお、変換したアプリを実行できるのは Windows 10 Anniversary Update 以降のみです。
Desktop Bridge の注意点
Desktop Bridge を使って既存のアプリを Windows ストアにあげるにあたり注意が必要な点があります。
-
DAC が行うこと
DAC が行うのは、既存アプリを Appx パッケージに変換することだけです。
元々のアプリ自体は何も変換されず、Win32 アプリや .NET アプリのままです(UWP に変換はされるわけではありません)。
なお、DAC が必須なわけではなく、対応する処理を手作業で行うことも可能(DAC を使った方が楽ですが)ですし、処理後に作成されたマニフェストファイルを更新することでカスタマイズも可能です。
-
変換元のアプリ
DAC で変換を行う場合、既存アプリのインストーラ(サイレントインストールに対応しているもの)を元にするのが一般的ですが、インストーラは必須ではありません。
実行することでアプリが配置できればよいので、単純に XCOPY しているバッチファイルを指定しても変換は可能です。
-
ストアへの申請
Desktop App Cpnverter で 変換したアプリをストアにあげるためには事前申請が必要です(UWP のように直接アップすることで申請はできません)。
事前申請は以下のページの「Windows ストアにアプリを提出する準備ができたら、こちらからお知らせください。」のリンク先から行います。
https://developer.microsoft.com/ja-jp/windows/bridges/desktop
申請時にアプリケーションの URL を入力する必要があります(ここで入力した URL で開発者等の確認を行うとのこと)。
問題がなければ、申請時に選択した国の担当者が割り当てられ、その担当者からメールで連絡がくるので、以降は担当者とやり取りしてストアにあげるという手順になります。
-
管理者権限必須
アプリ起動時に管理者権限を要求してくる(一般ユーザーでは動作しない)アプリはストアにアップできません(却下されるとのこと)。
起動時にユーザーが「管理者として実行」を選んで動作させることは可能なので、一般ユーザーで起動できるようにして、権限が必要な機能については管理者権限で起動するように促すといった対応が必要です。
-
サービス/ドライバ
元アプリのインストーラ内で別途サービスやドライバのインストールを行っている場合、変換後のパッケージを配置してもサービスやドライバはインストールされません。
別途、サービスやドライバのインストーラを用意して、ストアのアプリ説明やアプリ内でインストールを促す等の対応が必要です。
変換後のアプリの動作
DAC で変換を行ってもアプリは元のままですが、実行環境での配置方法が異なりますので、一部動作に影響があります。
-
配置場所
Appx パッケージを実行環境に配置する場合、"Program Files"の下やユーザーが指定した場所には置かれません。
標準ではエクスプローラーでアクセスできない場所(要するに UWP と同じ場所)に配置されますので、"Program Files"の下にあることを前提にしているアプリや、インストール先をレジストリに書いて他のアプリと連携するアプリ等はそのままでは動作しません。
-
書き込み場所
Appx パッケージとして配置した場合は、自アプリのフォルダ以下に書き込みアクセスは行えませんので、
そのような処理をしているアプリはそのままで動作しません。
また、AppData フォルダへのアクセスは、Appx パッケージのローカルストレージにリダイレクトされます。
単純に自アプリが読み書きするだけであれば問題ないですが、AppData フォルダを使って他アプリと連携するような処理はそのままでは動作しません。
-
作業フォルダ
アプリ実行時の作業フォルダは変換前と違います。
インストール時にショートカットに作業フォルダを指定している場合、変換後の作業フォルダの位置は変わってしまいますので注意が必要です。
-
レジストリ
HKEY_LOCAL_MACHINEへの書き込みは行えません。
上記ように元アプリの処理内容によっては、何らかの対応が必要になる場合があります(上記以外でも影響がある処理があります)。
そのため、変換後はクリーンな環境に配置して動作確認を行う必要があります。
Desktop Bridge の用途
ここまで記載してきたことを考慮すると、Desktop Bridge の用途としては以下のようなパターンでメリットがあると思います。
-
公開済のアプリをストアで配布する
すでに Web 上で公開しているアプリがあり、ストアでも配布したい場合です。
この場合、事前申請はスムーズに進むと考えられますので、変換後に動作に悪影響がないか注意しておけばよいと思います。
-
UWP では使えない機能を入れたい
UWP では使えない機能がどうしても必要な場合です。
この場合、最初から注意して作れば動作的な問題は少ないと思いますので、あとは予めアプリを公開してから事前申請を行います。
なお、UWP で可能な機能しか使わないのであれば、UWP で作った方がストアにあげるのが簡単ですので、作成前にどちらにするのかよく検討する必要があります。
ツール URL
-
Desktop App Converter
http://aka.ms/converter
※ Windows ストアからダウンロードします。
-
ベース イメージ
https://aka.ms/converterimages
※ダウンロードしたベースイメージを DAC に設定します。
実行環境と同じバージョンのイメージを使用します。
-
最新の Windows SDK
https://developer.microsoft.com/windows/downloads/windows-10-sdk
※Appx への署名等で使用します。