Windows Phoneエミュレーターを直接起動する方法を探してみた:連載:「○○してみた」日記(2/2 ページ)
Insider.NET編集部のスタッフ(といっても約1名)が、日々の編集作業の中で気になったあれやこれやを検証していく、扱いに困る新連載がスタート!
コマンドプロンプトやショートカットからXDEコマンドを実行する
XDEコマンドは「%ProgramFiles(x86)%\Microsoft XDE\8.1」ディレクトリにある(通常は、「C:\Program Files (x86)\Microsoft XDE\8.1」ディレクトリ)。また、Phone OS仮想マシンは「%LOCALAPPDATA%\Microsoft\XDE\8.1」ディレクトリに仮想ハードディスクのローカルコピー(差分ファイル)が保存されている(通常は、「C:\Users\ユーザー名\AppData\Local\Microsoft\XDE\8.1」ディレクトリ)。
また、XDEコマンドには次のようなオプションを指定できる(抜粋)。この他にもエミュレーターのセンサーデバイスの有効/無効を指定するオプションなどがあるが、詳細は「/?」オプションを指定してXDEコマンドを起動していただきたい。
- /name: 仮想マシン名(デフォルト値は「"Default Windows Phone Emulator"」)。これがHyper-VマネージャーやHyper-V仮想マシン接続では仮想マシン名として使われる
- /displayName: 表示名(タスクバーやアプリのウィンドウに表示されるテキスト)
- /vhd: 仮想ハードディスクへのパス
- /memsize: メモリサイズ(デフォルト値は512Mbytes)
- /video: ディスプレイの画素数(デフォルト値は480×800ドット)
- /diagonalSize: ディスプレイの対角画面サイズ(インチ単位)
- /createDiffDisk: /vhdオプションで指定された仮想ディスク(オリジナル)に対する差分ディスクを指定されたファイル名で作成する
- /snapshot: 既定のスナップショット(チェックポイント)を起動する(ない場合は新規に作成する)
- /fastShutdown: 仮想マシンのOSの正常なシャットダウンを待たずに、仮想マシンを停止する
コマンドプロンプトから上記のオプションを指定してXDEコマンドを実行すれば、直接Phoneエミュレーターを起動できる。この場合、VSやPower Toolsを使用して、一度、Phone OS仮想マシンを作成した後で、「/name」オプションや「/vhd」オプションを指定して、既存のPhone OS仮想マシンを使用するというのが基本線となる。
例えば「Emulator 8.1 WVGA 4 inch 512MB(JA).syngs_000」という名前が付けられたPhone OS仮想マシンの仮想ハードディスクが「%LOCALAPPDATA%\Microsoft\XDE\8.1」ディレクトリに「dd.480x800.512.vhd」というファイル名で存在する場合、これを起動するには次のようにする。
「/name」オプションを指定した場合
> "%ProgramFiles(x86)%\Microsoft XDE\8.1\xde" /name "Emulator 8.1 WVGA 4 inch 512MB(JA).syngs_000"
「/vhd」オプションを指定した場合
> "%ProgramFiles(x86)%\Microsoft XDE\8.1\xde" /vhd "%LOCALAPPDATA%\Microsoft\XDE\8.1\dd.480x800.512.vhd"
ただし、詳細な原因は不明だが、この方法だとPhoneエミュレーターの起動に失敗する場合が(それなりによく)ある。一方、(少なくとも本稿執筆期間中には)Power Toolsではそのようなことが起こっていない。そういう意味では、お手軽にPhoneエミュレーターを起動するなら、Power Toolsがお勧めだ。
上記のコマンドラインをショートカットファイルに記述することで、デスクトップやタスクバーから簡単に起動できるようになる(起動できない場合もあるけれど)。
簡単にその方法をまとめると次のようになる。
- 適当な場所にショートカットを作成する
- 作成したショートカットに、Phoneエミュレーターを起動するためのコマンドラインを入力して、[次へ]ボタンをクリックする
- ショートカットの名前を入力して[完了]ボタンをクリックする
- 必要であれば、できたショートカットを右クリックして、コンテキストメニューから[スタートにピン留め]や[タスク バーにピン留め]を選択する
タスクバーにショートカットをピン留めすれば、クリック一発でPhoneエミュレーターを起動できるようになる。これで今回の目的は達成したといってもよいだろう。とはいえ、個人的にはPower Toolsを使うのが簡単で失敗もなさそうなので、こちらをお勧めしたい。
などと書いてきたが、XDEコマンドについては、実はマイクロソフトの高橋氏(Windows Phoneのエライ人)によるブログ記事「WP8 のエミュレーターを単体起動するためのショートカット」がある。また、おなじくMSDNブログの「How to start Windows Phone 8 Emulator without Visual Studio」も参考になるだろう。
高橋氏のブログの日付を見るとなんと2012年の記事である。そして、そこにコメントを寄せているのは、本サイトで連載をお願いしている山本氏。これを発見したときには、一気に負けた感が漂ってきたことを付記しておく。
というわけで、2週間遅れと思ったら2年以上の周回遅れで、PhoneエミュレーターをVSなしで起動する方法を探してきたのだった。イエス! 温故知新!
[コラム]VSやPower Toolsが指定するXDEコマンドのオプション
VSやPower ToolsがPhoneエミュレーターを起動する際には、おおよそ以下のようなオプションが指定される(抜粋)。これら以外に画素数、画面サイズを指定する各種オプション、「/snapshot」オプション、「/fastShutdown」オプションも指定されている。
オプション | 値 |
---|---|
/name | "仮想マシン名"(例:"Emulator 8.1 WVGA 4 inch 512MB(JA).syngs_000") |
/displayName | "表示名"(例:"Emulator 8.1 WVGA 4 inch 512MB(JA)") |
/vhd | "C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.1\Emulation\Images\Flash.vhd"(全てのPhone OS仮想マシンのオリジナルイメージ) |
/createDiffDisk | 差分ディスクの作成先(例:"C:\Users\syngs_000\AppData\Local\Microsoft\XDE\8.1\dd.480x800.512.vhd") |
VSやPower ToolsからPhoneエミュレーターが起動される際に指定されるオプション(一部) |
まず、仮想マシン名と表示名には「仮想マシン名=表示名.ユーザー名」という関係がある(上の例では「syngs_000」がユーザー名)。VSやPower ToolsはPhone OS仮想マシンの実行環境のプロファイルを管理しており、仮想マシンを作成する際にはログインユーザーの名前をサフィックスとして、個別にその実行環境を保存するということだ。
次に「/vhd」オプションに指定しているのは、Phoneエミュレーターで使用する全ての仮想マシンの大本となるイメージを収めたファイルだ(flash.vhdファイル)。このファイルは保護されており、管理者権限でPhoneエミュレーターを起動しない限りは書き込めない。というか、管理者権限で書き込みをしてしまったら、大本のイメージが損なわれるのでそんなことをしてはいけない。そこで、「/createDiffDisk」オプションを指定して、差分をローカルに保存するようになっている。
ちなみにVSやPower Toolsが指定しているオプションを全て含んだショートカットを作成すれば、ベストなXDEコマンドをタスクバーにピン留めできそうだ。が、オプションが長すぎて、ショートカットのコマンドラインには収められないのであった(マジかよ……)。
本連載では、Insider.NET編集部のスタッフ(主にかわさき)が、日々の編集作業の中で気になったいろいろなことを、SNSやブログなどで盛り上がったその日から数日遅れでどんなもんかと試していきます(そして、多くの場合は自分自身にガッカリする結果となるのではないかと編集部内ではうわさされています)。今回は、Windowsシミュレーターから連想してPhoneエミュレーターを取り上げましたが、何を取り上げるかはその日次第。気合いを入れずにニヤニヤ笑いしながら読んでいただければと思います。つーか、一色さんも書いたっていいんだぜ?
Copyright© Digital Advantage Corp. All Rights Reserved.