2009-06-17 49 views
6

This question说明我的问题正是,但我使用的app.configConfigurationManager自定义配置部分,因此该解决方案提出了有不适......如何使用ConfigurationManager通过ClickOnce更新来保持app.config?

基本上,我的问题是,当更新的ClickOnce应用程序,它会使用新的app.config安装到不同的目录中,从而删除所做的任何更改。我的应用程序使用app.config来保存应用程序设置,所以这非常糟糕......合并的更新会非常出色(与其他问题类似),但几乎所有的自动化功能都会很好。

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

回答

2

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

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

也许这种方法也适用于你。

编辑补充参考资料:

谷歌搜索ApplicationDeployment也应该有所帮助。

+0

Whereabouts是这个ApplicationUpdated事件?我无法在对象浏览器中找到它...此外,这并没有帮助解决问题(虽然这是一个很好的功能,我从不喜欢ClickOnce对话框),但更新仍安装到新目录中,所以旧的app.config丢失 – 2009-06-17 14:14:42

1

如果可以,请使用Settings.settings(在项目中的属性下找到)来存储您的客户配置。

ClickOnce会自动合并您的用户设置,您不必担心任何事情。看看这样的更多说明:http://www.dotnetperls.com/settings-visual-studio