酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows PhoneでIsolated Storage Explorer Toolを使ってファイルを転送する

Windows Phoneの分離ストレージは、セキュアな反面デバッグ中にエクスプローラー等のPC側のファイルシステムから分離ストレージにアクセスすることが出来ず、開発効率が落ちてしまう原因になっていました。

Windows Phone SDK 7.1から分離ストレージに対してアクセスする方法として「Isolated Storage Explorer Tool」が追加されました。コマンドラインベースであまり使いやすいとは言えませんが、今まで分離ストレージにアクセス出来なかったことを考えると、格段にデバッグ効率が上がったと言えます。

このツールが追加されたのはWindows Phone SDK 7.1からですが、Windows Phone OS 7.0向けのアプリケーションでも使うことが出来ます。

「Isolated Storage Explorer Tool」で出来ることは以下の3つです。

  • Windows Phone内の分離ストレージからPCへデータを転送
  • PCからデータをWindows Phone内の分離ストレージへ転送
  • Windows Phone内の分離ストレージのディレクトリの一覧表示

開発環境であるWindowsが32bit版か64bit版かで、インストールされているディレクトリが異なります。

  • Windowsが32bit版の場合
    • "C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool\ISETool.exe"
  • Windowsが64bit版の場合
    • "C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool\ISETool.exe"

ISETool.exeに指定するパラメータ

ISETool.exeの書式は以下の通りです。

C:\>ISETool.exe <ts|rs|dir[:device-folder]> <xd|de> <Product GUID> [<desktop-path>]

コマンドの引数を前から順に説明していきます。

パラメータ 説明
ts (Take snapshot) Windows Phone内の分離ストレージからPCへデータを転送
rs (Restore snapshot) PCからデータをWindows Phone内の分離ストレージへ転送
dir Windows Phone内の分離ストレージのディレクトリの一覧表示
特定のディレクトリの一覧をみたい場合は「dir:"/Shared"」のように指定する。ディレクトリを指定しなかった場合はルートディレクトリの一覧が表示させる。
xd Windows Phoneエミュレータを対象とする
de Windows Phone端末(実機)を対象とする
Product GUID データをダンプしたい対象となるアプリのWPAppManifest.xmlに書かれているProduct GUID
desktop-path PC側の転送先または転送元パス

ISETool.exeの使い方

3つのコマンド別にISETool.exeの使い方をご紹介します。テスト中のプロジェクトのPropertiesディレクトリにあるWMAppManifest.xmlを開きます。

f:id:ch3cooh393:20150928015659p:plain

App要素にProductID属性がありますので、このIDをメモしておいてください。このCameraPreviewTestのプロダクトIDは「d529745c-470a-4fc0-aab0-50b76d24bfe3」ということになります。

f:id:ch3cooh393:20150928015707p:plain

### Windows Phone内の分離ストレージからPCへデータを転送

プロダクトIDが「d529745c-470a-4fc0-aab0-50b76d24bfe3」のアプリケーションの分離ストレージの内容を、Windows Phone端末(実機)からPCの「c:\test」ディレクトリへ転送しています。

> ISETool.exe ts de d529745c-470a-4fc0-aab0-50b76d24bfe3 c:\test

コマンドを実行し、問題なく終了するとDownload Successfulと表示されます。特に進捗が表示されることも無いので、サイズの大きなファイルを転送している場合は、コマンドプロント上でのフィードバックがありませんので注意してください。

> ISETool.exe ts de d529745c-470a-4fc0-aab0-50b76d24bfe3 c:\test
Download Started ... Into Folder: c:\test
Download Successful Into Folder: c:\test

PCからデータをWindows Phone内の分離ストレージへ転送

プロダクトIDが「d529745c-470a-4fc0-aab0-50b76d24bfe3」のアプリケーションの分離ストレージに対して、PCの「c:\test」ディレクトリのデータをWindows Phone端末(実機)へ転送しています。

> ISETool.exe ts de d529745c-470a-4fc0-aab0-50b76d24bfe3 c:\test

Windows Phone内の分離ストレージのディレクトリの一覧表示

プロダクトIDが「d529745c-470a-4fc0-aab0-50b76d24bfe3」のアプリケーションの分離ストレージのルートディレクトリ一覧を参照します。

> ISETool.exe ts dir d529745c-470a-4fc0-aab0-50b76d24bfe3

dirに続いて[:device-folder]を指定すると特定のディレクトリ一覧を参照することが可能です。

以下の例では、プロダクトIDが「d529745c-470a-4fc0-aab0-50b76d24bfe3」のアプリケーションの分離ストレージのルート直下のSharedディレクトリ一覧を参照しています。

> ISETool.exe dir:"/Shared" de d529745c-470a-4fc0-aab0-50b76d24bfe3
<DIR>          Transfers
<DIR>          ShellContent
<DIR>          Media

参照