Где я должен хранить настройки приложения на всей машине для не-роуминговых пользователей? - PullRequest
6 голосов
/ 07 декабря 2011

У меня есть приложение WPF, которое должно работать для всех пользователей компьютера с одинаковыми настройками.Настройки должны быть для чтения / записи.Ранее я хранил настройки конфигурации пользователя в CommonApplicationData, например

var settingsFile = Path.Combine(Environment.GetFolderPath(
  Environment.SpecialFolder.CommonApplicationData),
    "[company]", "[product]", "settings.xml");

Однако сегодня утром я прочитал, что CommonApplicationData используется для перемещаемых профилей, то есть они не зависят от конкретной машины.Из того, что я могу найти, у нас есть следующие параметры для данных приложения ( источник ):

// 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 ]

3 голосов
/ 07 декабря 2011

Вот хорошее объяснение папки appdata и других элементов, связанных с перемещаемым пользователем.

Согласно документации MSDN :

CommonApplicationData - это «каталог, который служит общим хранилищем для данных конкретного приложения, которые используются всеми пользователями»

, тогда как

LocalApplicationData - это «каталог, который служит общим хранилищем для данных конкретного приложения, которые используются текущим пользователем без роуминга».

0 голосов
/ 07 декабря 2011

Я предпочитаю это Настройки приложения , которое может быть приложением или для каждого пользователя, как вы хотите для настройки.

...