ClickOnce 和应用程序设置
Windows 窗体的应用程序设置使得在客户端上创建、存储和维护自定义应用程序和用户首选项变得容易进行。 下面的文档描述应用程序设置文件如何在 ClickOnce 应用程序中工作,以及 ClickOnce 如何在用户升级到下一个版本时迁移设置。
下面的信息仅适用于默认应用程序设置提供程序(LocalFileSettingsProvider 类)。 如果您提供自定义提供程序,则该提供程序将确定它如何存储其数据以及如何在不同版本之间升级其设置。 有关应用程序设置提供程序的更多信息,请参见应用程序设置体系结构。
应用程序设置文件
应用程序设置使用以下两个文件:app.exe.config 和 user.config,其中 app 为 Windows 窗体应用程序的名称。 当您的应用程序首次存储用户范围设置时,将在客户端上创建 user.config。 相反,如果您为设置定义了默认值,则 app.exe.config 在部署之前就将存在。 Visual Studio 会在您使用其**“发布”**命令时自动包含此文件。 如果使用 Mage.exe 或 MageUI.exe 创建 ClickOnce 应用程序,则必须确保在填充应用程序清单时,与应用程序的其他文件一起包含此文件。
在不是使用 ClickOnce 部署的 Windows 窗体应用程序中,应用程序的 app.exe.config 文件存储在应用程序目录中,而 user.config 文件存储在用户的**“Documents and Settings”**文件夹中。 在 ClickOnce 应用程序中,app.exe.config 位于 ClickOnce 应用程序缓存内部的应用程序目录中,user.config 位于该应用程序的 ClickOnce 数据目录中。
无论以何种方式部署应用程序,应用程序设置都将确保对 app.exe.config 的安全读取访问,以及对 user.config 的安全读/写访问。
在 ClickOnce 应用程序中,应用程序设置使用的配置文件的大小受 ClickOnce 缓存大小的约束。 有关更多信息,请参见 ClickOnce 缓存概述。
版本升级
如同 ClickOnce 应用程序的每个版本独立于所有其他版本一样,ClickOnce 应用程序的应用程序设置也独立于其他版本的设置。 当您的用户升级到应用程序的更高版本时,应用程序设置将最新(具有最大编号)版本的设置与随更新版本提供的设置进行比较,并将这些设置合并到一组新的设置文件中。
下表描述应用程序设置如何决定要复制哪些设置。
更改类型 |
升级操作 |
---|---|
将设置添加到 app.exe.config |
新设置被合并到当前版本的 app.exe.config 中 |
将设置从 app.exe.config 中移除 |
将旧设置从当前版本的 app.exe.config 中移除 |
设置的默认值更改;本地设置在 user.config 中仍设置为原始默认值 |
设置被合并到当前版本的 user.config 中,以新的默认值作为其值 |
设置的默认值更改;设置在 user.config 中设置为非默认值 |
设置被合并到当前版本的 user.config 中,保留该非默认值 |
如果您已创建自己的应用程序设置包装类并希望自定义更新逻辑,则可以重写 Upgrade 方法。
ClickOnce 和漫游设置
ClickOnce 不使用漫游设置,漫游设置使得您的设置文件可以在网络上的计算机之间跟随您迁移。 如果需要漫游设置,则需要实现一个在网络上存储设置的应用程序设置提供程序,或是开发自己的自定义设置类以便在远程计算机上存储设置。 有关设置提供程序的更多信息,请参见应用程序设置体系结构。