前バージョンの設定を引き継ぐ方法(C#用メモ)

C#でアプリケーションの設定を保存するにはApplicationSettingsBaseを利用するのが簡単ですが、この設定はアプリケーションのバージョン毎に設定を持つため、バージョンアップ時には前バージョンの設定を引き継ぐ必要があります。
単に引き継ぐだけならUpgrade()を実行すれば良いのですが、これだけだと起動するごとに前バージョンの設定を読み込んでしまい現行バージョンの設定が上書きされてしまうため、Upgradeを実行したかどうかを判断させる必要があります。

まず、「Upgradeを実行したかどうか」の情報をSettingsへ追加します。
bool型で、名前は“IsUpgrade”、初期値はfalseとします。

次に、アプリケーションのイニシャル処理で下記のようにします。

// 前バージョンからのUpgradeを実行していないときは、Upgradeを実施する
if (Properties.Settings.Default.IsUpgrade == false)
{
    // Upgradeを実行する
    Properties.Settings.Default.Upgrade();

    // 「Upgradeを実行した」という情報を設定する
    Properties.Settings.Default.IsUpgrade = true;

    // 現行バージョンの設定を保存する
    Properties.Settings.Default.Save();
}

IsUpgradeの初期値はfalseにしたため、現バージョンで設定を保存していないとき、つまり、新規インストール時,前バージョンからUpgradeされていないとき,両方ともfalseになり、Upgradeが実行されます。
新規インストール時、つまり、前バージョンの情報がないときにUpgradeを実行しても、初期値が有効になるため問題ありません。