如何使用ConfigurationManager通过ClickOnce更新来持久保存app.config?

时间:2009-06-17 12:01:15

标签: c# clickonce app-config configurationmanager

This question完全描述了我的问题,除了我在app.config中使用ConfigurationManager的自定义配置部分,因此在那里提供的解决方案不适用...

基本上,我的问题是,当ClickOnce更新应用程序时,它会使用新的app.config安装到不同的目录中,从而删除所做的任何更改。我的应用程序使用app.config来保存应用程序设置,所以这非常糟糕...合并的更新会非常好(类似于在另一个问题中实现的),但是在这一点上几乎任何自动化都会很好。< / p>

或者我应该只为app.config文件使用设置位置而不是尝试使用默认位置?

2 个答案:

答案 0 :(得分:3)

ClickOnce应该在更新之间保持用户设置,但是由于未知原因(并且结果不好),我已经失败了一次或两次。我没有尝试过自定义配置设置,但我对ClickOnce不能覆盖设置的能力失去了信心。

我打算使用的方法是手动处理ClickOnce更新而不是允许应用。检查更新并提示用户安装。我也有几个用户不接受更新,这是一个很难恢复。通过手动处理更新,我希望能够在更新之前将用户设置读入内存,然后在更新完成后将其写回。有一个应该用于此目的的ApplicationUpdated事件。

也许这种方法对你也有用。

编辑添加引用:

Google应用程序部署的Google搜索也应该有帮助。

答案 1 :(得分:1)

如果可以,请使用Settings.settings(位于项目中的“属性”下)来存储客户配置。

ClickOnce会自动合并您的用户设置,您无需担心任何事情。查看类似的内容以获取更多说明:http://www.dotnetperls.com/settings-visual-studio