我应该在哪里为非漫游用户存储机器范围的应用程序设置?

时间:2011-12-06 20:50:31

标签: c# .net windows application-data roaming-profile

我有一个必须为具有相同设置的一台机器的所有用户运行的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);

总结一下,选项是

  • 单用户,漫游
  • 所有用户,漫游
  • 单用户,非漫游

我需要的是所有用户,非漫游。我最初的想法是将它全部放入安装文件夹,但这似乎有点老派?

思想?

2 个答案:

答案 0 :(得分:3)

appdata文件夹的

Here is a good explanation以及与漫游用户相关的其他项目。

根据MSDN Documentation

CommonApplicationData是“作为所有用户使用的特定于应用程序的数据的公共存储库的目录”

LocalApplicationData是“作为当前非漫游用户使用的特定于应用程序的数据的公共存储库的目录”。

答案 1 :(得分:0)

我对此的偏好是Application Settings,可以是应用程序范围内的,也可以是每个用户的设置。