Почему мои параметры настройки приложения не сохраняют?

Я не верю, что какой-либо вопрос, связанный с оптимизацией, должен быть затоплен воспеванием неправильно процитированной фразы «Преждевременная оптимизация - корень всех зол», потому что код, оптимизированный для запутывания, - это то, что делает кодирование увлекательным

12
задан Hakan Fıstık 22 May 2017 в 09:24
поделиться

3 ответа

Пользовательские настройки зависят от пользователя, поэтому они не будут сохранены обратно в файл .exe.config, который является общесистемным.

Из документации LocalSettingsProvider :

Параметры области приложения и пользовательские настройки по умолчанию: хранится в файле с именем application.exe.config, который создается в том же каталоге, что и запускаемый файл. заявка параметры конфигурации доступны только для чтения. Конкретные данные пользователя хранятся в файле с именем username.config , хранится в домашний каталог пользователя.

Итак, для приложения UserSettingsTest, запускаемого из VS под отладчиком (отсюда и бит vshost), я получил путь:

C:\Users\Jon\AppData\Local\UserSettingsTest
  \UserSettingsTest.vshost.e_Url_pdqoppugkz1vaawbhwkkcu5ibxpi2fgu
  \1.0.0.0\user.config
18
ответ дан 2 December 2019 в 03:54
поделиться

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

Если это так, вам необходимо выполнить обновление файла настроек:

Properties.Settings.Default.Upgrade()

Вы также можете установить параметр NeedsUpgrading на true с помощью по умолчанию и установите для него значение false после выполнения обновления, чтобы конечные пользователи, которые не меняют номера версий при каждом запуске приложения, не выполняли обновление все время

19
ответ дан 2 December 2019 в 03:54
поделиться

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

Вы можете увидеть эти папки, нажав «синхронизировать» в диалоговом окне «Настройки приложения».

Обычно в Vista:

  • c: \ users [currentuser] \ AppData \ Local [CompanyName] [AppName] \ version
  • c: \ users [currentuser] \ AppData \ Roaming [CompanyName] [AppName] \ version

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

[CompanyName] и [ProductName] взяты из настроек информации о сборке.

1
ответ дан 2 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: