これは一部のユーザーにのみ発生する問題です。 Marketplaceで新しいバージョンのアプリをリリースするたびに、アプリの設定がすべて失われているというメールがユーザーから届きます。アプリのアップデートをインストールするとアプリがすべての設定を失う
私はこれを自分自身で再現することはできず、IsolatedStorageを消去できるコードはありません。
誰かがこれを引き起こしている可能性のあるものを手がかりにしていれば素晴らしいだろう。
これは一部のユーザーにのみ発生する問題です。 Marketplaceで新しいバージョンのアプリをリリースするたびに、アプリの設定がすべて失われているというメールがユーザーから届きます。アプリのアップデートをインストールするとアプリがすべての設定を失う
私はこれを自分自身で再現することはできず、IsolatedStorageを消去できるコードはありません。
誰かがこれを引き起こしている可能性のあるものを手がかりにしていれば素晴らしいだろう。
更新: WP7アプリには次のことが当てはまるかどうかはわかりません。私はこれを通常のアプリで試しただけです。
古い設定ファイルを「アップグレードする」必要があります。
これはいつ実行する必要があるか(新しいバージョンがインストールされている場合のみ)を知る必要があります。
設定をアップグレードする必要があるときは、設定にNeedSettingsUpgradeというブール値を追加し、デフォルト値をtrueに設定します。
続い)(メインの先頭近くのどこかに次の関数を呼び出します。
/// <summary>Upgrades the application settings, if required.</summary>
private static void upgradeApplicationSettingsIfNecessary()
{
// Application settings are stored in a subfolder named after the full #.#.#.# version number of the program. This means that when a new version of the program is installed, the old settings will not be available.
// Fortunately, there's a method called Upgrade() that you can call to upgrade the settings from the old to the new folder.
// We control when to do this by having a boolean setting called 'NeedSettingsUpgrade' which is defaulted to true. Therefore, the first time a new version of this program is run, it will have its default value of true.
// This will cause the code below to call "Upgrade()" which copies the old settings to the new.
// It then sets "NeedSettingsUpgrade" to false so the upgrade won't be done the next time.
if (Settings.Default.NeedSettingsUpgrade)
{
Settings.Default.Upgrade();
Settings.Default.NeedSettingsUpgrade = false;
}
}
注:もちろんそうでない場合は、設定変更が永続化されることはありません、あなたのプログラムが終了する前にSettings.Default.Save()
を呼び出す必要があります。
このコードはWP7以外のアプリ向けですか? – John
私のアプローチは、アセンブリバージョン番号をアップグレードのトリガーとして使用することでした。最初の実行時に、v1.0に必要な形式とアセンブリバージョン番号1.0.0.0の設定を保存します。アップグレードが実行されると、保存された設定番号(1.0.0.0)がアップグレードされたアセンブリ番号1.1.0.0と比較され、アップグレードが必要であると判断されます。
私は、Visual Studioの再デプロイを実行してもアップグレードが必要ないことを発見しました。だから私はWindows Phone Powertoolsを使用して、アップグレードを確実に行うように見えるので、私の「アップグレード」パスをテストしました。
ありがとう、私は見てみましょう。しかし、私はまだ問題を抱えています、あなたはこれを引き起こしていることについて何か考えていますか? – John
私はあなたの問題にも興味があります。私は私のアプリをテストするときに似たようなものに気づいた。 Visual Studioからそれを実行し、電話機(エミュレータではない)をターゲットにすると、データベースを削除しないでコードを更新するだけで、データベースを一掃して再作成することがあります。 – Dante