Мне очень трудно получить доступ к пользовательскому разделу конфигурации в моем файле конфигурации.
Файл конфигурации считывается из библиотеки .dll, которая загружается как подключаемый модуль. Я создал конфигурацию и необходимый код с помощью конструктора разделов конфигурации надстройки VS.
Пространство имен — «ImportConfiguration». Класс ConfigurationSection — «ImportWorkflows». Сборка ImportEPDMAddin.
XML:
<configSections>
<section name="importWorkflows" type="ImportConfiguration.ImportWorkflows, ImportEPDMAddin"/>
</configSections>
Всякий раз, когда я пытаюсь прочитать конфигурацию, я получаю сообщение об ошибке:
Произошла ошибка при создании обработчика раздела конфигурации для importWorkflows: не удалось загрузить файл или сборку «ImportEPDMAddin.dll» или одну из ее зависимостей. Система не может найти указанный файл.
dll не будет находиться в том же каталоге, что и исполняемый файл, поскольку программное обеспечение, загружающее плагин, помещает dll и его зависимости в свой собственный каталог. (Я не могу это контролировать.)
Я отредактировал код экземпляра singleton следующим образом:
string path = System.Reflection.Assembly.GetCallingAssembly().CodeBase;
path = path.Replace("file:///", "");
System.Configuration.Configuration configuration = System.Configuration.ConfigurationManager.OpenExeConfiguration(path);
return configuration.GetSection(ImportWorkflowsSectionName) as ImportConfiguration.ImportWorkflows;
Я также пытался использовать простой NameValueFileSectionHandler, но получаю исключение, говорящее, что он не может загрузить файл или сборку «Система».
Я прочитал множество сообщений и статей в блогах, и похоже, что можно прочитать файл конфигурации для dll, но я просто не могу заставить его работать. Есть идеи? Спасибо.
ImportEPDMAddin.dll.config
в то же место? - person ephemient   schedule 05.11.2009