アプリの設定とかはApplicationData.Currentの下のLocalSettingsとかRoamingSettingsとかを使うのが一般的ですよね。ここの設定がアプリのバージョンアップによって非互換が発生してしまった!?というときに使える小技を紹介します。
ApplicationData.Current.SetVersionAsyncというメソッドを使います。 このメソッドには、アプリケーションのバージョン番号と、バージョン番号変える時の操作を指定できます。 こんな感じで使います。
await ApplicationData.Current.SetVersionAsync(0, r => { var d = r.GetDeferral(); Debug.WriteLine($"CurrentVersion: {r.CurrentVersion}, DesiredVersion: {r.DesiredVersion}"); // バージョンが違ってたら必要に応じて変換ロジックを走らせる d.Complete(); });
アプリのバージョンが上がって仕様が変わったタイミングでSetVersionAsyncの第一引数をインクリメントする感じで使います。 バージョン番号が変わってなくても、第二引数で指定したコールバックは呼ばれるので注意ですね。