2010-01-31 2 views
9

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

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

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

ответ

5

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

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

7

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

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

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

2

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

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

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

6

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

-1

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

+6

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

1

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

Смежные вопросы