我的应用程序设置在哪里准确存储?

时间:2013-11-23 13:42:38

标签: c# .net visual-studio-2010 windows-installer application-settings

使用Windows窗体(或WPF)应用程序,如果我通过Publish命令(ClickOnce)创建安装程序,安装程序将在C:\Users\[UserName]\AppData\中创建包含可执行文件和配置文件的应用程序文件夹。另一方面,如果通过安装项目(MSI)创建安装程序,则安装的应用程序将位于C:\Program Files\My Company\My App中,包含可执行文件和配置文件。在这两个中,我选择了MSI路径。

我的期望是应用程序设置(如在项目属性>设置选项卡中)从Program Files中的配置文件读取/写入,即使我卸载程序或升级它也会保留在那里使用较新的版本,以便用户的设置不会丢失。但似乎并非如此。即使配置文件的Program Files版本存在,安装的应用程序似乎正在读取/写入C:\Users\[UserName]\AppData\,就像它是ClickOnce应用程序一样。我错过了什么?

(这是VS2010 + Win7 + C#+ .NET 4.0客户端配置文件,但我不认为这些事情有任何关系。)

1 个答案:

答案 0 :(得分:0)

我希望我能以正确的方式理解你的问题。

如果您想知道为什么设置会从AppData文件夹中读取/写入,那么这是出于安全/许可原因。

首次启动应用程序时,app.config文件中的初始应用程序设置已复制到该文件夹​​。您的应用程序将自动处理新创建的文件。

这样做已经完成,因为让用户处理Program Files文件夹中的“全局”设置会带来风险,您的所有用户都可以使用该设置。如果用户只有读取权限但不能写入此文件,请考虑会发生什么。