ApplicationSettingsBaseでは保存先の変更は行えなかったかと思います。
設定自身に保存先のフォルダを記憶しておくようにして、アップグレードする際に
前のバージョンの値を読みだして、アップグレード後にそのフォルダを削除するようにすればいいのではないでしょうか。
C#
1// 前バージョンからのUpgradeを実行していないときは、Upgradeを実施する
2// appsはApplicationSettingsBaseを継承したクラスです。
3if (apps.IsUpgraded == false)
4{
5 string prevpath = "";
6 // 前バージョンのconfigファイルのパスを取得
7 if (!(apps.GetPreviousVersion("ConfigPath") is null))
8 {
9 prevpath = apps.GetPreviousVersion("ConfigPath").ToString();
10
11 // Upgradeを実行する
12 apps.Upgrade();
13
14 // 「Upgradeを実行した」という情報を設定する
15 apps.IsUpgraded = true;
16
17 // 現行バージョンのパスを設定する
18 Configuration conf = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
19 apps.ConfigPath = System.IO.Path.GetDirectoryName(conf.FilePath);
20
21 // 現行バージョンの設定を保存する
22 apps.Save();
23
24 // 前のバージョンのフォルダを消す
25 System.IO.Directory.Delete(prevpath, true);
26 }
27
28}
ただ、ここまでするのであれば、他の方法で保存したほうがスッキリするのではないかと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/08 23:36
2019/03/08 23:59