Где хранить конфигурацию для простого приложения .NET? - PullRequest
10 голосов
/ 31 января 2010

Я программирую довольно простое приложение, которое я хочу сократить до одного простого EXE-файла + некоторое хранилище данных (например, XML).

Мой вопрос касается файлов конфигурации. Где поместить эти файлы? Я видел несколько приложений, которые имеют только EXE-файл (uTorrent, Media Player Classic - я могу использовать их без какой-либо установки), но они хранят свои настройки в другом месте. Как этого добиться?

Как бы вы подошли к такой ситуации? Лучше попытаться добиться того, что я описал выше, или просто использовать файл конфигурации и хранилище данных в том же каталоге, что и файл EXE?

Ответы [ 7 ]

7 голосов
/ 31 января 2010

Создание или использование файла в той же папке (или в App_Data) - довольно стандартная практика.

Вы используете установщик, такой как Inno Setup (бесплатно), чтобы создать один установщик exe (http://www.jrsoftware.org/isinfo.php)

)

Если вам нужна БД, а не XML, взгляните на SQLite (http://www.sqlite.org/) БД на основе файлов или используйте БД MS Access.

6 голосов
/ 31 января 2010

Программы только для EXE хранят свои данные либо в реестре Windows, либо в папке Application Data / AppData пользователя. Хотя поначалу это может показаться чище, оно просто скрывает безобразие разбрасывания всех ваших данных. Я бы предложил использовать простой XML / INI / текстовый файл данных, который создается при необходимости и легко переносится.

5 голосов
/ 31 января 2010

Я думаю, вы хотите взглянуть на Настройки приложения . Это API, который позволяет сохранять настройки пользователя или приложения, используя строго типизированный API. Под капотом настройки хранятся через сериализацию XML.

Этот API-интерфейс работает практически со всеми типами приложений .Net, включая версии Click Once с низким разрешением. Он выполняет работу по поиску места на диске, подходящего для хранения данных, и полностью скрывает его от вас. У этого также есть хорошая интеграция GUI в Visual Studio.

3 голосов
/ 31 января 2010
2 голосов
/ 31 января 2010

Вы можете использовать файл app.config для хранения вашей конфигурации. Для данных я бы предложил что-то вроде db4o или SQLite .

Редактировать

Этот урок может показать вам, как просто использовать db40 для хранения и получения ваших данных.

1 голос
/ 31 января 2010

Не забудьте Изолированное хранилище . Это дает вам место для чтения и записи файлов без необходимости указывать местоположение. Иногда это единственный способ, которым приложения-песочницы (такие как Silverlight) могут локально хранить данные, относящиеся к пользователю или компьютеру. См. здесь для примера.

0 голосов
/ 31 января 2010

Я бы сохранил их в том же каталоге. Мне это кажется проще, по крайней мере, так я всегда делаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...