【发布时间】:2011-12-06 20:50:30
【问题描述】:
我有一个 WPF 应用程序,它必须为具有相同设置的一台机器 的所有用户运行。设置必须是读/写的。我之前一直在 CommonApplicationData 中存储用户配置设置,例如
var settingsFile = Path.Combine(Environment.GetFolderPath(
Environment.SpecialFolder.CommonApplicationData),
"[company]", "[product]", "settings.xml");
但是我今天早上读到CommonApplicationData 用于漫游配置文件,这意味着它们不是特定于机器的。据我所知,我们有以下应用程序数据选项 (source):
// Store application-specific data for the current roaming user.
// A roaming user works on more than one computer on a network.
// A roaming user's profile is kept on a server on the network and is loaded onto a system ' when the user logs on.
System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
// Store in-common application-specific data that is used by all users.
System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
// Store application-specific data that is used by the current, non-roaming user.
System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
总而言之,选项是
- 单用户,漫游
- 所有用户,漫游
- 单用户,非漫游
我需要的是所有非漫游用户。我最初的想法是将其全部放入安装文件夹中,但这似乎有点老派?
想法?
【问题讨论】:
-
您从哪里得知
CommonApplicationData正在漫游?我觉得有点奇怪…… -
我在 Bill Wagner 的《Effective C#》一书中读到了它。然而,这是我唯一能找到这个花絮的地方,所以这可能是瓦格纳的一个罕见错误,如果我对此有误,我很想知道。
-
来自MSDN 文档:“该目录用作所有用户使用的特定于应用程序的数据的公共存储库。”
-
也许我没有正确理解漫游,所以也许从简短的描述中可以看出这一点,但如果其中一个或多个用户是漫游用户怎么办?
-
在 Windows 的标准安装中没有默认文件夹,其中 所有 用户都具有写入权限。您必须自己创建一个。
标签: c# .net windows application-data roaming-profile