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