2014-01-28 4 views
0

Я пытаюсь сэкономить NameValue Пара в настройках динамически. Я могу видеть новые сохраненные значения динамически. Но когда я получаю доступ к странице настроек из окна свойств, она показывает то же старое значение. Вот код:Пользовательские настройки в C#

Properties.Settings.Default.Name = textBox1.Text; 
Properties.Settings.Default.Age = textBox2.Text; 
Properties.Settings.Default.Save(); 

Любые предложения?

+0

Когда вы говорите окно свойств, вы имеете в виду одно внутри Visual Studio? –

+0

Да. Тот, который мы получаем, когда мы нажимаем правой кнопкой мыши на Solution-> Properties-> Settings – Harsh

ответ

3

Предполагая, что вы тестируете свое приложение с помощью Visual Studio, ваша проблема возникает, потому что, когда вы меняете настройку своего приложения, вы не меняете исходный файл настроек. Когда Visual Studio запускает приложение, он создает папку внутри каталога, где ваш код называется «obj/Debug» или «obj/Release», и копирует все ваши DLL-файлы и ресурсы в эти папки, включая файлы настроек.

Это означает, что изменения в настройках будут отражены в вашем «obj/Debug/yourappname.exe.config», а не в исходном файле. Если вы откроете этот файл, например, с помощью текстового редактора, вы увидите, что содержимое изменилось. Помните, что каждый раз, когда вы перекомпилируете свое приложение в Visual Studio и запускаете этот файл, он будет заменен оригиналом, потеряв ваши новые настройки.

Вы можете вручную запустить свое .exe-приложение внутри этой папки и проверить, сохранены ли ваши настройки.

+0

Итак, вы не указали настройки в исходном файле. Но они хранятся в каталоге Debug внутри settings.exe – Harsh

+1

appname.exe.config в каталоге \ bin \ Debug по-прежнему содержит значения по умолчанию для пользовательских настроек приложения. Это результат компиляции app.config в выходной папке. Сохраненные настройки времени выполнения будут сохранены в файле с именем user.config. User.config можно найти в профиле пользователя Windows. Например, в Windows7 путь по умолчанию: C: \ Users \ \ AppData \ Local \ \ <хэш имени приложения> \ \ user.config. Файл yourapp.exe.config в папке \ bin \ Debug всегда будет содержать значения по умолчанию, так как вы хотите развернуть приложение с настройками по умолчанию. –

2

После компиляции файл настроек будет развернут в файл yourapplication.exe.config. Это файл, который вы меняете (/Debug/app.exe.config). Если вы хотите увидеть изменения в своем «окне свойств», вам нужно вручную открыть файл .settings и отредактировать xml.

Примечание: после изменения файла .config изменения сохраняются .. но только до тех пор, пока вы не скомпилируете свое приложение еще раз.

1

Решение-> Свойства-> Настройки - это значения, заданные по умолчанию. Пользовательские настройки могут быть изменены во время выполнения и будут сохраняться с вашим приложением, но они не будут записаны в проект вашей визуальной студии.

В вашем примере, если вы снова запустите программу в последующие моменты времени (* не удалив debug/rebuild в visual studio), ваши настройки, сохраненные в вашем фрагменте, будут сохранены.

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

Смежные вопросы