locked
isolated storageの初期化の要因 RRS feed

  • 質問

  • isolatedstorageを使ってデータを格納しています。プログラムをビルドすると毎回ではないのですが、isolatedstorageに書いたデータが初期化され、消えてしまいます。どのようなタイミングで、原因で初期化が実行されるのでしょうか。プログラムをアップデートしたときにデータが消えてしまっては困るので、対応方法や初期化される原因を教えてください
    2012年5月17日 23:49

すべての返信

  • 私がこれまで経験した中で、IsolatedStorageが削除されるケースですが、

    A. 一番単純なケースで、デバックに使用しているWindows Phoneエミュレーターのウインドウを[X]ボタンで閉じてしまった場合
       エミュレーターを終了してしまうと、設定は完全に初期化してしまうので、アプリも設定も完全にクリアされてしまいます。

    B. アプリ一覧をのタイルを長押しし、端末やエミュレーターからアプリを削除した場合
       アプリを削除してしまうと、アンインストール相当となり、IsolatedStorageに保存した情報もまとめて削除されてしまいます。
       なんらかのトラブルでアプリの再インストールをユーザーに依頼する場合もデータが消失する旨を伝えておく必要があります。

    C. WMAppManifest.xmlやAssemblyInfo.csを変更し、アプリケーションの基本情報が書き換わった場合
       これに関しては私も詳細にどのような条件で起きているのかはよくわかっていませんが、このあたりの変更をしたのちにアプリのタイルがいったん削除・再登録され実質再インストールされた経験があります。

    D. 何らかのトラブルによりアプリが異常終了した場合
       滅多なことでは起きませんが、やはりデータ破損が起きて初期化されるケースがあるようです。おそらくデータやキャッシュの書き込み中などに例外等が発生した場合だと思いますが...。

    といったあたりが考えられるのではないかと思うのですが、いかがでしょうか?
    ちと、いま思いつかないとか、経験がないだけで、あといくつかは発生するパターンがあるのではないか、と思います。

    また、IsolatedStorageに関しては、結構デバッグ出力が出ていたりするので、何か起きた際はVisual Studioの[出力]ウインドウの方もチェックしてみてください。
    2012年5月21日 3:18
  • Nakajimaさん 情報ありがとうございました今後ともよろしくお願いします
    2012年5月24日 6:53