Windows Phoneメモ002:ローカルデータベースの中身を見る

2011.07.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。くろの(福田)です。

Windows Phone向けアプリケーションを開発する際に、分離ストレージを使うことがあると思います。
Windows Phone 7.1からはSQL Server Compact Edition(SQL Server CE)が使えるようになりました。

このSQL Server CEで作ったテーブルの中身を見る環境を準備したいと思います。その際、分離ストレージエクスプローラを使います。

(1)コマンドラインで分離ストレージエクスプローラのディレクトリに移動する

cd c:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool

※PATHに上記ディレクトリが追加されていた場合はこの手順はスキップ。
※上記は64bit開発環境でのデフォルトのディレクトリです。

(2)分離ストレージの中身を一覧する

VisualStudio 2010でアプリケーションを実行し、予めエミュレータにアプリケーションをデプロイしておきます。

ISETool.exe dir xd 【WMAppManifest.xmlのAppタグのProductId】
<DIR>          Shared
 65,536 ごにょごにょ.sdf

※アプリ側で分離ストレージのルートに「ごにょごにょ.sdf」を作成した場合。Sharedは最初から作られてるディレクトリです。

※アプリケーションがエミュレータにデプロイされていないと下記のようなエラーが表示されます。

Directory Listing Error. Reason: Application is not installed

(3)C:\などに中身をダウンロードする

ISETool.exe ts xd 【WMAppManifest.xmlのAppタグのProductId】 c:\
Download Started ... Into Folder: c:\
Download Successful Into Folder: c:\

これでc:\フォルダ直下にIsolatedStoreというフォルダができて、その中に分離ストレージの中身が保存されます。

(4)Server Explorerを開く

VisualStudio 2010を開き、Tool>Connect to Databaseを選択する。

「Choose Data Source」ダイアログが開くので、Microsoft SQL Server Compact 3.5を選択し、「Continue」ボタンをクリックする。

「Add Connection」ダイアログが表示されるので、「Database:」の部分にsdfファイルのパスを記述し、「OKボタン」をクリックする。

「Server Explorer」が開くので、データベースファイルの中身をチェックしていく。

テーブルが追加されていると、その中身を見ていくことができます。
ここでデータを作成し、エミュレータや開発実機の分離ストレージに戻してあげたりもできると思います。

おまけ:分離ストレージエクスプローラのヘルプ日本語訳

c:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool>ISETool.exe help
コマンドラインパラメータ: <ts|rs|dir[:device-folder]> <xd|de> <Product GUID> [<desktop-path>]

  解説:
     ts ? (take snapshot(スナップショットを撮る)) 分離ストレージの内容をデバイスからデスクトップにダウンロードする
     rs ? (restore snapshot(スナップショットを戻す)) 分離ストレージの内容をデスクトップからデバイスにアップロードする
     dir? (list directory(ディレクトリを一覧する)) デバイスのフォルダか(指定がなければ)ルートにあるコンテンツを一覧する
     xd ? エミュレータ
     de ? デバイス
     Product GUID ? (product ID(プロダクトID)) プロジェクトのWMAppManifest.xmlにあります
     desktop-path - ダウンロードやアップロードの際のデスクトップのパス

例:下記コマンドラインパラメータはC:\data\myfilesからエミュレータへファイルとディレクトリをアップロードします。
        実行しているアプリケーションのProduct GUID: f8ce6878-0aeb-497f-bcf4-65be961d4bba

     ts xd f8ce6878-0aeb-497f-bcf4-65be961d4bba C:\data\myfiles

     下記コマンドラインパラメータはエミュレータの\My Folder\Images\にあるコンテンツを一覧します。

     dir:"\My Folder\Images\" xd f8ce6878-0aeb-497f-bcf4-65be961d4bba

おしまい

@Cronoloves