Как реализовать данные конфигурации для расширения vsix в Visual Studio 2010?

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

Можно ли просто использовать файл app.config в той же папке, что и файл sln, и если да, я должен использовать некоторые пользовательские параметры конфигурации для переноса файла? NuGet, кажется, реализует этот подход, но я не до конца понимаю внутреннюю архитектуру, чтобы увидеть, как используется файл конфигурации.

Буду признателен за любые альтернативные подходы тоже.

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

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

2 ответа

Решение

Лучшее место для хранения настроек для расширения.vsix - это использование файла.settings. Для его создания выполните следующие действия.

  • Щелкните правой кнопкой мыши по проекту и выберите "Свойства"
  • Перейти на вкладку "Настройки"
  • Нажмите на ссылку, чтобы создать файл настроек по умолчанию

Это создаст пару файлов в вашем решении.

  • Settings.settings
  • Settings.Designer.cs

Кроме того, он вызовет конструктор, из которого могут быть добавлены новые настройки. К ним можно получить доступ позже, используя Settings.Default статическое свойство

Там и, на мой взгляд, лучше всего работает встроенный механизм, подробное пошаговое руководство: http://msdn.microsoft.com/en-us/library/ff460144.aspx

Добавляя примечание от себя, я вижу, что базовая реализация использует подраздел системного реестра. Однако после удаления расширения VSIX все ключи удаляются автоматически, поэтому ваше расширение не загрязняет систему, оставляя потерянные записи.

Другие вопросы по тегам