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回目移行は実行されない
という仕組みです。
ナイスです!