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呢?
我知道了,用Settings.Default.Upgrade()方法,会自己新建一个新版本的文件夹,同时更新配置。只能说它这个方法的说明写的不太好。
如果配置文件经常改, 你就自己写ini
你这是clickonce发布的? 那告诉你, 很难很麻烦实现。
用的是Properties.Settings.settings,配置不经常改,只是会升级程序版本。
你读取user.config时判断是否存在这个文件,如果存在无所谓
如果不存在 就去它的上一级目录下查找别的版本号文件夹,看看里面是否存在user.config,存在就复制过来就好了,当然遍历的时候要把距离你当前版本最近的复制过来
关键是Settings.Default.Save()时建的那个**.exe***文件夹是个未知的。要怎么获取呢?
当然是在 AppData\Roaming(用 Environment.SpecialFolder.LocalApplicationData 得到此路径) 下新建一个应用程序名的文件夹,把你的自定义配置和数据保存在这里。
那个路径是这样的C:\Users\Administrator\AppData\Local\[公司名]\[UI.exe_Url_qwpbwv4ltha5gjbbmwgqs3wthyr130pm]\版本号\user.config
[UI.exe_Url_qwpbwv4ltha5gjbbmwgqs3wthyr130pm]根本就不知道_Url_qwpbwv4ltha5gjbbmwgqs3wthyr130pm这一串.net是怎么取的名,没法获取这个配置啊
@Selway: 说实话,我挺着急的,是为你着急。
@Launcher: 求指教