首页 新闻 会员 周边

Settings与版本号的问题

0
悬赏园豆:10 [已解决问题] 解决于 2014-12-24 12:18

Settings配置是保存在AppData/Local Settings/**.exe***/1.0.0.0/user.config。

那么问题来了。

如果我的程序版本是1.0.0.0那使用没问题,如果更新了程序的版本号2.0.0.0,程序就会找不到1.0.0.0的配置,而且用户再次保存配置,又会产生一个新的文件AppData/Local Settings/**.exe***/2.0.0.0/user.config。

有没有方法,可以使新版本的程序继续沿用之前的Settings呢?

问题补充:

使用的是Winform自己的Properties.Settings.settings,配置不经常改,只是会升级程序版本。

Selway的主页 Selway | 初学一级 | 园豆:-6
提问于:2014-12-24 10:55
< >
分享
最佳答案
0

我知道了,用Settings.Default.Upgrade()方法,会自己新建一个新版本的文件夹,同时更新配置。只能说它这个方法的说明写的不太好。

Selway | 初学一级 |园豆:-6 | 2014-12-24 12:18
其他回答(3)
0

如果配置文件经常改, 你就自己写ini

你这是clickonce发布的? 那告诉你, 很难很麻烦实现。 

收获园豆:4
问天何必 | 园豆:3311 (老鸟四级) | 2014-12-24 11:09

用的是Properties.Settings.settings,配置不经常改,只是会升级程序版本。

支持(0) 反对(0) Selway | 园豆:-6 (初学一级) | 2014-12-24 11:53
0

你读取user.config时判断是否存在这个文件,如果存在无所谓

如果不存在 就去它的上一级目录下查找别的版本号文件夹,看看里面是否存在user.config,存在就复制过来就好了,当然遍历的时候要把距离你当前版本最近的复制过来

收获园豆:3
刘宏玺 | 园豆:14020 (专家六级) | 2014-12-24 11:10

关键是Settings.Default.Save()时建的那个**.exe***文件夹是个未知的。要怎么获取呢?

支持(0) 反对(0) Selway | 园豆:-6 (初学一级) | 2014-12-24 11:57
0

当然是在 AppData\Roaming(用 Environment.SpecialFolder.LocalApplicationData 得到此路径) 下新建一个应用程序名的文件夹,把你的自定义配置和数据保存在这里。

收获园豆:3
Launcher | 园豆:45045 (高人七级) | 2014-12-24 11:51

那个路径是这样的C:\Users\Administrator\AppData\Local\[公司名]\[UI.exe_Url_qwpbwv4ltha5gjbbmwgqs3wthyr130pm]\版本号\user.config

[UI.exe_Url_qwpbwv4ltha5gjbbmwgqs3wthyr130pm]根本就不知道_Url_qwpbwv4ltha5gjbbmwgqs3wthyr130pm这一串.net是怎么取的名,没法获取这个配置啊

支持(0) 反对(0) Selway | 园豆:-6 (初学一级) | 2014-12-24 12:05

@Selway: 说实话,我挺着急的,是为你着急。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-12-24 12:51

@Launcher: 求指教

支持(0) 反对(0) Selway | 园豆:-6 (初学一级) | 2014-12-25 09:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册