2011-05-08 44 views
8

我想知道vs项目的Settings配置中Application和User scope之间的实际区别是什么。项目设置:应用程序和用户范围之间的实际区别?

是唯一的区别的事实,如果我选择应用程序,我不能使用Settings.MyProperty作为二传手,但我必须使用Settings["MyProperty"]呢?

如果配置文件位于我的应用程序根目录下,如何使用用户范围影响程序?

回答

6

用户范围意味着每个用户都获得他们自己的副本,这些设置存储在用户个人资料文件夹中,并且您的应用可以保存那些没有管理员权限的设置。

如果更改应用程序设置(使用Settings["MyProperty"])并调用Settings.Save(),则必须以管理员身份运行,因为这些更改已保存到MyApplication.exe.config。并且更改适用于所有用户。

+4

不,应用程序作用域设置根本无法保存, -只要。设置设计器不会为它们生成属性设置器。 – 2011-05-08 18:19:59

+0

但是你可以改变/保存它们,只是不通过生成的属性。 – 2011-05-12 11:52:43

0

最好的办法是使用'用户'设置,因为对于较新的操作系统,Windows不喜欢读取和写入本地可执行文件的文件,但由于对病毒的意识,这看起来很可疑。所以Windows喜欢你读写指定的安全区域,我相信这发生在操作系统跟踪的某些应用程序数据区域。如果将范围设置为“应用程序”,它可能会尝试将此数据写入本地配置文件(这就是为什么您需要以管理员权限运行的原因),并且随着操作系统变得更加锁定,可能仍然存在这样做的问题。您的应用程序可能在这样的XP下工作,但任何新的可能无法正常工作,特别是当应用程序运行在'c:\ Program Files'文件夹时...

相关问题