Есть ли файл конфигурации для надстройки Visual Studio?

При создании надстройки Visual Studio, как можно использовать app.config для надстройки. Если я добавлю один в проект и разверну его, тогда, когда надстройка будет запущена, и я программно попытаюсь получить к ней доступ через ConfigurationManager.AppSettings, он не получит файл конфигурации для надстройки.
Я что-то делаю не так или есть другой способ доступа к параметрам конфигурации на основе файлов для надстройки?


person gouldos    schedule 13.10.2010    source источник


Ответы (1)


ConfigurationManager.AppSettings выбирает файл конфигурации для AppDomain, в который вы загружены. Этот файл конфигурации обычно связан с исполняемым файлом точки входа. В вашем случае вы не контролируете ни исполняемый файл точки входа, ни домен приложения, в котором вы работаете, поэтому вы не можете использовать ConfigurationManager.AppSettings.

Ваш вопрос в основном сводится к "Как я могу связать файл конфигурации с DLL?" (Конфигурационный файл C # Dll). Вам нужно сделать две вещи:

  1. Добавьте в проект элемент «Файл конфигурации приложения» и убедитесь, что вы развертываете его в той же папке, что и ваша DLL.
  2. Получите доступ к файлу конфигурации из вашей DLL, используя следующий код:

     string pluginAssemblyPath = Assembly.GetExecutingAssembly().Location;
     Configuration configuration = ConfigurationManager.OpenExeConfiguration(pluginAssemblyPath);
     string someValue = configuration.AppSettings.Settings["SomeKey"].Value;
    

Это определенно сработает для обычных DLL, которые не загружаются с помощью теневого копирования. Я не уверен, как VS загружает свои плагины. Если у вас возникнут проблемы, дайте мне знать, и я могу опубликовать решение для DLL, которые загружаются через теневую копию.

person Russell McClure    schedule 13.10.2010