Сохранить пользовательские настройки в папке приложения

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

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 и использовать его в следующий раз, чтобы мое приложение могло быть более переносимым?


person Milos    schedule 04.02.2011    source источник
comment
Я вижу, как это сделает ваше приложение более переносимым, но также сделает его однопользовательским. Это ваше намерение?   -  person Frédéric Hamidi    schedule 04.02.2011
comment
Да, это то, что я не буду.   -  person Milos    schedule 04.02.2011
comment
Любая конкретная причина не использовать App.config?   -  person Mayank    schedule 04.02.2011
comment
@Mayank OP хочет, чтобы файл конфигурации был переносимым на несколько компьютеров.   -  person Shekhar_Pro    schedule 04.02.2011


Ответы (2)


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

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

person Ohad Schneider    schedule 04.02.2011
comment
это именно то, что мне было нужно, отлично работает, спасибо за помощь - person Milos; 04.02.2011

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

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

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

[setting_name] = [Setting_value]\n

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

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

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

person Shekhar_Pro    schedule 04.02.2011
comment
XML-файл, который можно сериализовать/десериализовать, кажется самым простым способом. - person alex; 04.02.2011
comment
+1 @alex, ты прав, вот почему я упомянул об этом ... ini был предложен, потому что он уже используется многими приложениями именно для этой цели ... но XML - лучший выбор, многие новые приложения используют его ... - person Shekhar_Pro; 04.02.2011