如何确定每用户状态的存储位置?注册?应用程序数据?隔离存储?

Che*_*eso 23 c# windows registry wpf winforms

什么时候应该将Windows注册表用于每用户状态,何时应该使用文件系统,特别是用户的AppData文件夹?(例如,C:\ Users\USERNAME\AppData).隔离存储在哪里?

是否有一个相当坚定的规则,或者它只是一个模糊的事情,如"使用注册表,直到它成为太多的数据存储在注册表中".或者"使用你想要的任何东西."

是否存在影响决策的Windows徽标要求?

如果我使用AppData目录,如何在Local,Roaming和LocalLow之间进行选择?

编辑:我刚刚注意到这些类似的问题:

我将总结回复.

Nir*_*Nir 13

如果您有少量的键/值对且值不大,则注册表很棒 - 而且您不关心xcopy部署 - 然后使用注册表(我知道这不是确切的,但通常很明显当使用注册表变得痛苦时).

如果你想要xcopy部署,数据显然必须与程序在同一个文件夹中 - 但程序可以在AppData文件夹下的某个位置,它不必在"程序文件"下.

仅在需要时使用隔离存储或必须使用它 - 例如ClickOnce.

否则使用AppData\Roaming,只有在有充分理由的情况下才使用Local或LocalLow.

编辑:这是Roaming,Local和LocalLow之间的区别:

Windows有一个鲜为人知的称为"漫游配置文件"的功能,一般的想法是,在具有此功能的企业环境中,任何用户都可以使用任何计算机.

当用户登录他的私人设置时,从服务器下载,当他退出时,他的设置被上传回服务器(实际过程显然更复杂).

用户在Vista中的"漫游"文件夹或XP中的"应用程序数据"中的文件随用户移动 - 因此任何设置和数据都应存储在那里.

Vista中的"Local"和"LocalLow"下的文件以及XP中的"Local Settings"都没有,因此它是临时文件,与特定计算机相关的东西或可以重新计算的数据的好地方.

在Vista中,作为我们都知道和喜爱的新安全功能的一部分,您可以让程序以"低完整性模式"运行(例如IE在受保护模式下),这些程序以降低的权限运行,无法访问用户的配置文件 - "LocalLow"文件夹下的文件除外.

因此,总而言之,存储在"LocalLow"中的文件本质上是不安全的,并且"本地"/"本地设置"中的文件可能在某些大型公司中不可用 - 因此,除非您有充分的理由并确切地知道您正在做什么,否则"漫游"/"应用程序数据".


Oma*_*eji 5

请不要弄乱我的注册表谢谢.

使用隔离存储,这就是它的用途.

看看Windows注册表是个好主意吗?在杰夫斯博客上......