Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > UserSettings


Автор: andrey_pro 9.8.2010, 10:43
Использую в программе app.config c usersettings. В usersettings хранится путь до базы данных.
В программе можно редактировать этот путь и сохранять в настройки. При сохранении сам app.config (который лежит там где программа) не изменяется, а изменяется конфигурационный файл в папке пользователя: 

C:\Documents and Settings\Andrew\Local Settings\Application Data\Моя_программа\My_prog.vshost.exe_Url_f4zoeviky0aibnqdgs4ufvc4avfs0bak\1.2.0.0\user.config"

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

Автор: mrbrooks 9.8.2010, 10:51
http://msdn.microsoft.com/en-us/library/system.configuration.aspx

Автор: andrey_pro 9.8.2010, 11:12
 smile 

Автор: VirusUZ 9.8.2010, 12:00
Код

<configuration>

  <appSettings>
    <add key="Cnstr" value="Data Source=rahim;Initial Catalog=comps;User ID=rahim;Password=123465" />
  </appSettings>
    <connectionStrings/>

...

</configuration>

Автор: andrey_pro 9.8.2010, 12:55
VirusUZ, не то.
Я использую userSettings а не appSettings, и как задавать его в конфиге я знаю.
Мне нужно прочитать его из другой программы.

Автор: andrey_pro 10.8.2010, 08:27
как сделать чтобы usersettings в конфиге использовался для разных приложений???

Автор: ДобренькийПапаша 10.8.2010, 10:49
andrey_pro, я не знаю есть ли способ проще, но, нельзя-ли просто в вашей другой программе открыть этот файл и разобрать как xml-файл?

Автор: andrey_pro 10.8.2010, 10:56
открыть файл xml и разобрать его - это как раз не проблема.
Проблема найти его, а он лежит сейчас тут:
C:\Documents and Settings\Andrew\Local Settings\Application Data\Моя_программа\My_prog.vshost.exe_Url_f4zoeviky0aibnqdgs4ufvc4avfs0bak\1.2.0.0\user.config"

как эта строка строится не понимаю.
если переместить программу в другую папку то меняется строка ..._Url_f4zoeviky0aibnqdgs4ufvc4avfs0bak...

Добавлено через 5 минут и 18 секунд
может можно как то задать чтобы всегда пользовательская конфигурация хранилась в:
C:\Documents and Settings\Andrew\Local Settings\Application Data\Моя_программа\user.config"

Автор: mrbrooks 10.8.2010, 11:21
andrey_pro, по идее в config.FilePath должен быть путь к твоему конфигу. проверь.

Код

Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.PerUserRoamingAndLocal);
MessageBox.Show(config.FilePath); 

Автор: andrey_pro 10.8.2010, 13:43
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.PerUserRoamingAndLocal);

- при таком раскладе берется конфиг для текущей программы.

а мне нужно залезть в конфиг другой моей программы которых хранится в локал сеттингс

Автор: mrbrooks 10.8.2010, 15:39
Цитата(andrey_pro @  10.8.2010,  14:43 Найти цитируемый пост)
- при таком раскладе берется конфиг для текущей программы.


тогда я ничем больше помочь не могу. у меня в этом случае используется конфиг из
Цитата(andrey_pro @  10.8.2010,  14:43 Найти цитируемый пост)
локал сеттингс 

 smile 

Автор: jonie 10.8.2010, 16:57
andrey_pro, ну возьми сохрани эту строку (где лежит) например в реестре...

Автор: mrbrooks 11.8.2010, 09:05
Цитата(jonie @  10.8.2010,  17:57 Найти цитируемый пост)
ну возьми сохрани эту строку (где лежит) например в реестре...

идете в разрез с генеральной линией M$?  smile 

Автор: andrey_pro 11.8.2010, 17:03
Цитата(jonie @  10.8.2010,  16:57 Найти цитируемый пост)
ну возьми сохрани эту строку (где лежит) например в реестре...


я как раз переношу настройки из реестра в appdata.

вобщем сделал свой SettingsProvider для хранения настроек, по образу:
http://www.gotdotnet.ru/blogs/Dmitryk/7208/

теперь настройки пишутся в один файл в папке appdata

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)