VBアプリでmy.settingsを上書きアップデート後に引き継ぐ方法

Visual Studio 2008で作成したセットアップで新バージョンを上書きした場合に、my.settingsに保存された設定が初期化されてしまう件に対処する方法を調べました。

ここの掲示板のスレッド(英語)にナイスな情報がありまして、上書きインストールした場合、設定はAppData下に新規に作成され、旧バージョンのものが上書きされるワケではないと。で、それを引き継ぐメソッドがMy.Settings.Upgrade()のようです。メソッドについてはこちらが詳しいです。。

ただ毎回これを実行してしまうのも無駄だし一抹の不安もあるので、上記スレッドに書いてあるコード、

If My.Settings.UpdateRequired Then
           My.Settings.Upgrade()
           My.Settings.UpdateRequired = False
           My.Settings.Save()
End If

では、

  • my.settingsの中に「UpdateRequred」というBoolean値を作っておきTrueにしておく
  • まっさらな設定では当然Trueなのでこのルーチンが実行される
  • Upgradeメソッドを実行し、上記Boolean値をFalseに変更した後保存
  • 2回目移行は実行されない

という仕組みです。

ナイスです!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)