как изменить .Расположение СЕТЕВЫХ пользовательских настроек
-
22-09-2019 - |
Вопрос
По умолчанию настройки хранятся по адресу: C:\Documents and Settings\\Local Settings\Application Data\<Project Name>
Как я могу изменить этот путь к каталогу приложения?Я также не хочу иметь разные файлы для разных пользователей.Как сделать настройки глобальными?
Я попытался изменить область действия настроек на "приложение", но тогда я не могу изменить их во время выполнения.
Решение
Используя встроенное поведение по умолчанию, вы не можете!
Q:Почему этот путь такой неясный?Есть ли какой-нибудь способ изменить / настроить это?
A: Алгоритм построения пути должен соответствовать определенным строгим требованиям с точки зрения безопасности, изоляции и робастности.Хотя мы пытались сделать путь максимально простым для обнаружения, используя понятные, поставляемые приложением строки, невозможно сохранить путь полностью простым без возникновения проблем, таких как коллизии с другими приложениями, подмена и т.д.
LocalFileSettingsProvider не предоставляет способа изменить файлы, в которых хранятся настройки.Обратите внимание, что сам поставщик не определяет расположение файлов конфигурации в первую очередь это конфигурация системы.Если вам по какой-либо причине необходимо сохранить настройки в другом месте, рекомендуется написать свой собственный SettingsProvider.Это довольно просто реализовать, и вы можете найти примеры в .NET 2.0 SDK , которые показывают, как это сделать.Имейте в виду однако, что вы можете столкнуться с теми же проблемами изоляции, упомянутыми выше.
Я согласен с ответом Роберта Харви сделай это сам, или напишите поставщика пользовательских настроек.
Другие советы
Вы всегда можете прочитать и написать свой собственный XML-файлы конфигурации.
Есть сложности с программным изменением настроек для всех пользователей (поскольку они берутся из файла exe.config, который обычно находится в Program Files и таким образом защищен от доступа на запись в современных ОС).Вы можете попробовать сделать настройки для всего приложения, но затем использовать ConfigurationManager
возиться с файлом конфигурации, аналогично решению этот вопрос.