Вопрос по c#, application-settings, .net – Почему настройки моего приложения не сохраняются?

12

Так что у меня есть некоторые настройки, которые имеютuser области, но по какой-то причине они не сохраняются в файл .exe.config. Я делаю следующее:

<code>Properties.Settings.Default.Email = "[email protected]";
Properties.Settings.Default.Save();
</code>

Тем не менее, я смотрю на файл настроек в папке отладки, и он все еще используется по умолчанию в Visual Studio. Я делаю это неправильно?

Ваш Ответ

3   ответа
0

жения в папке, в которой указывается версия приложения и название.

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

В Vista вообще:

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

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

[CompanyName] и [ProductName] определяются настройками вашей информации о сборке.

18

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

Из документовLocalSettingsProvider:

Application-scoped settings and the default user-scoped settings are stored in a file named application.exe.config, which is created in the same directory as the executable file. Application configuration settings are read-only. Specific user data is stored in a file named username.config, stored under the user's home directory.

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

C:\Users\Jon\AppData\Local\UserSettingsTest
  \UserSettingsTest.vshost.e_Url_pdqoppugkz1vaawbhwkkcu5ibxpi2fgu
  \1.0.0.0\user.config
XP будет C: \ Documents and Settings \ Ryan \ Local Settings \ Application Data
У меня WinXP, но я не видел ни одного такого файла или папки в C: \ Documents and Settings \ Ryan \ Application Data. Это правильное место? ryeguy
18

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

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

Properties.Settings.Default.Upgrade()

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

Я использовал этот подход здесь и имел успех:bytes.com/topic/c-sharp/answers/…
Удивительный ответ и элегантный совет NeedsUpgrading!
не знал, что существует метод с именем upgrade, аккуратно.

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