Сохранить пользовательские настройки в папке приложения - PullRequest
9 голосов
/ 04 февраля 2011

Я использую настройки из своего приложения на C # следующим образом:

String str = Properties.Settings.Default.SETTINGS_NAME;

Когда я сохраняю эти настройки, файл настроек создается на

C:\Documents and Settings\<user name>\Local Settings\Application Data\<comp name>\Keb.exe_Url_pbs4eg1o2ija22omldrwjxhdam0jxxi5\1.0.0.0\user.config

Есть ли способизменить этот путь на Application.ExecutablePath\user.config и использовать его в следующий раз, чтобы мое приложение могло быть более переносимым?

Ответы [ 2 ]

9 голосов
/ 04 февраля 2011

Вы можете контролировать местоположение файла user.config, создав пользовательский SettingsProvider. К счастью для вас, кто-то из CodeProject уже сделал это.

См. Мой ответ здесь для всех деталей: Как сделать сгенерированные дизайнером настройки приложения .Net переносимыми

2 голосов
/ 04 февраля 2011

Если вы хотите, чтобы он был однопользовательским или каким-либо другим способом сделать конфигурацию вашего приложения переносимой, я буду использовать пользовательский файл конфигурации, такой как файл .ini , и сохраню его в корневой папке моего приложения.

Таким образом, любой желающий иметь эти настройки может просто скопировать его в корневую папку своего приложения на другом компьютере.Когда приложение запускается, оно просто загружает настройки и ведет себя соответствующим образом.

сохраняет данные в фиксированном формате, например

[setting_name] = [Setting_value]\n

или в XML файле, с именем тега для настройкии значение для ... ну ... значение:)

Вы также можете использовать настройки реестра, но пользователь не считает простым копировать и объединять файлы .reg

Этокак я видел некоторые игры для ПК (например, я часто менял настройки Crysis и MassEffect) и программы сохраняют свои файлы конфигурации.

...