Сохранить настройки приложения ... реестр / файл? - PullRequest
1 голос
/ 23 декабря 2010

Где лучше всего хранить настройки приложения?

В частности, я хотел бы сохранить настройки для медиаплеера, такие как уровни громкости и тому подобное. Два кандидата приходят на ум ... файл и реестр. Что было бы более уместным?

В качестве продолжения этого мне также интересно, есть ли какие-либо API, которые помогают в создании специфических настроек приложения.

Если кто-то не сообщит мне, что это неправильно, я бы хотел сохранить данные либо в HKCU... or HKLM/Software/MyCompanyName/MyAppName/Key для реестра, либо в %APPDATA\MyCompanyName\MyAppName\someTypeOfSettingsFile.

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

Ответы [ 2 ]

5 голосов
/ 23 декабря 2010

Открыть settings.settings в вашем решении Visual Studio;добавьте настройку приложения (т. е. измените область действия с «пользователь» на «приложение»).

В среде IDE создается класс поддержки, который можно использовать в коде.

Реестра следует избегать.

Расположение файлов app.exe.config и user.config будет различаться в зависимости от того, как установлено приложение.Для приложения на основе Windows Forms, скопированного на локальный компьютер, файл app.exe.config будет находиться в том же каталоге, что и базовый каталог основного исполняемого файла приложения, а файл user.config будет находиться в местоположении, указанном в Application.LocalUserAppDataPathимущество.Для приложения, установленного с помощью ClickOnce, оба этих файла будут находиться в каталоге данных ClickOnce в папке% InstallRoot% \ Documents and Settings \ username \ Local Settings.

1 голос
/ 23 декабря 2010

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

Не используйте реестр без веских причин.

...