C # проблемы с доступом к app.config другого проекта - PullRequest
4 голосов
/ 08 декабря 2010

У меня есть два проекта, один - приложение (exe), а другой - библиотека (dll).Я загружаю библиотеку динамически из приложения.Я пытаюсь получить доступ к app.config exe из библиотеки DLL.Вот код из DLL:

config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
object abc = config.Sections["MySection"];

Если у меня есть ссылка из проекта программы на проект библиотеки, то приведенный выше код работает нормально.Но если я удаляю ссылку, я получаю исключение System.IO.FileNotFoundException.

Свойство конфига HasFile имеет значение true, но, похоже, он не может найти раздел или что-то в этом роде.Поэтому я подумал, что, возможно, он использует другой файл aap.config, и я попытался вручную указать путь app.config в OpenExeConfiguration, но я все еще получаю ту же ошибку.

Так как я могу получить доступ к приложению app.config программыиз DLL, не имея ссылки на эту DLL из программного проекта?

1 Ответ

2 голосов
/ 08 декабря 2010

Решение:

FileNotFoundException в проекте установки и развертывания Visual Studio при попытке загрузить пользовательскую конфигурацию

Мне пришлось добавить сборку в обработчик разрешения:

ResolveEventHandler tempResolveEventHandler =
(sender, args) => { return Assembly.LoadFrom(Assembly.GetExecutingAssembly().Location); };

AppDomain.CurrentDomain.AssemblyResolve += tempResolveEventHandler;
//access the app.config here
AppDomain.CurrentDomain.AssemblyResolve -= tempResolveEventHandler;
...