C # visual studio - Properties.Settings.Default.SomeValueOrДругое меня сбило с толку - PullRequest
0 голосов
/ 07 декабря 2009

C # визуальный студийный проект: Properties.Settings.Default.SomeValueOrAnother озадачил меня.

У меня относительно простой проект. Он сохраняет кучу последних введенных значений между сеансами и восстанавливает их при следующем вызове. Работал нормально. Я изменил элемент управления таким образом, чтобы минимально допустимое значение больше не было 1, а теперь равным 100. Последнее использованное значение было 3. При запуске теперь жалуется, что 3 не является допустимым значением.

Ну да, конечно - но услышь остальное.

Я отредактировал Настройки в VS по умолчанию на 500. Я отредактировал файл exename.config, чтобы он содержал 500 вместо 3. Я проверил каждый возможный файл конфигурации (vshost.exe.config, файлы в bin / debug, bin / release, obj / debug, obj / release. Все они содержат значение = 500. Я неоднократно пересобрал. Я скопировал только exe и файл конфигурации на отдельный ПК, чтобы среда разработки не была фактором Я все еще получаю это сообщение об ошибке.

Чтобы еще больше сбить меня с толку, на ПК разработчика, если я запускаю (напрямую, а не в отладчике) исполняемый файл в / obj / debug или / obj / release, я НЕ получаю ошибку. Если я запускаю их в / bin, я получаю ошибку. Конфигурационные файлы имеют идентичное содержимое. Если я скопирую exe & config из / obj (тот, который не выдает ошибку на ПК разработчика) на другой ПК, я действительно получу ошибку.

Я думал, что exename.config - это все, с чем мне пришлось иметь дело, но похоже, что VS делает что-то за моей спиной - по крайней мере то, что я не могу найти в документации. Я предполагаю, что это что-то тривиальное. Если кто-нибудь и сможет объяснить, что я пропустил, я, безусловно, это ценю. Все, что я действительно хочу сделать, это надежно сохранить некоторые пользовательские настройки от одного запуска программы к следующему. И заставьте это приложение «забыть» это устаревшее значение.

TIA

Mickey

Ответы [ 2 ]

1 голос
/ 07 декабря 2009

Найдите файлы * .settings в вашем решении. Вот где будет сохранено значение, использованное при создании проекта.

0 голосов
/ 08 декабря 2009

Это был не полный ответ, но он объяснял, где хранились тайные значения:

"Это может помочь некоторым людям, имеющим дело с Settings.settings и App.config: обратите внимание на атрибут GenerateDefaultValueInCode на панели свойств при редактировании любого значения в сетке Settings.settings в Visual Studio (в моем случае VS2008) Если вы установите для GenerateDefaultValueInCode значение True (True здесь по умолчанию!), Значение по умолчанию скомпилировано в exe (или dll), вы можете найти его в файле при его открытии в текстовом редакторе. Я работал в консольном приложении, и если у меня были значения по умолчанию в exe, приложение всегда игнорировало место файла конфигурации в том же каталоге! Весьма кошмар и никакой информации об этом во всем Интернете. "

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

По-настоящему уродливый и хорошо скрытый по умолчанию. Я не встраивал значения данных в свои исполняемые файлы со времен CPM. Джееш.

Еще раз спасибо, Microsoft.

...