项目设置:应用程序范围和用户范围之间的实际区别是什么?

8
我想知道在VS项目的设置配置中,应用程序范围和用户范围之间的实际区别是什么。
唯一的区别是如果我选择了应用程序范围,我不能使用“Settings.MyProperty”作为setter,而必须使用“Settings ["MyProperty"]”吗?
如果配置文件位于我的应用程序根目录下,那么使用用户范围会对程序产生什么影响?
2个回答

6

用户范围意味着每个用户都有自己的副本,设置存储在用户配置文件夹中,您的应用程序可以在不需要管理员权限的情况下保存这些设置。

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


4
不,应用程序范围的设置无法保存,它们是严格只读的。设置设计器不会为它们生成属性设置器。 - Hans Passant
但是你仍然可以更改/保存它们,只是不能通过生成的属性来实现。 - H H

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接