私は、このようなコードを使用して、以前のバージョンからのユーザー設定を保存することができることを理解するようになった:設定のローミングプロパティを変更すると、ユーザー設定の値を保持するにはどうすればよいですか?
if (Settings.Default.UpgradeRequired)
{
Settings.Default.Upgrade();
Settings.Default.UpgradeRequired = false;
Settings.Default.Save();
}
しかし、私は設定のローミングプロパティを変更した場合に動作するようには思えません。ローミングからローカルに、またはその逆に設定を変更するときに、設定値を持ち越してリセットしないようにする方法はありますか?
編集:GetPreviousVersion()
メソッドを使用してローミング設定をローカル設定にアップグレードする可能性のある方法を検討しましたが、現在の設定がローミングしていない場合は以前のバージョンのローミングバージョンはまったく返されません。
- をMySettingという名前の設定を行います。再現する
。
- MySettingのRoamingプロパティを
true
に変更します。 - MySettingの有効範囲が
User
であることを確認してください。Console.WriteLine(Settings.Default.GetPreviousVersion("MySetting")); Settings.Default.MySetting = "Not the default value."; Settings.Default.Save();
- インクリメントアセンブリバージョン:
は、次のコードを実行します。
- 新しい値が出力されることに注意して、コードを再度実行します。
- MySettingのローミングプロパティを
false
に変更します。 - 再度アセンブリバージョンをインクリメントします。
- コードを再度実行し、既定値が出力されていることに注意してください。