Где я должен хранить настройки приложения на всей машине для не роуминговых пользователей?
У меня есть приложение 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 ответа
Вот хорошее объяснение папки appdata и других элементов, связанных с роумингом пользователя.
Согласно документации MSDN:
CommonApplicationData
"каталог, который служит общим хранилищем для данных конкретного приложения, которые используются всеми пользователями"
в то время как
LocalApplicationData
является "каталогом, который служит общим хранилищем для данных конкретного приложения, которые используются текущим пользователем без роуминга".
Я предпочитаю это " Настройки приложения", которые могут быть как для всего приложения, так и для пользователя, как вы хотите для каждого параметра.