Компонент C# COM не может прочитать Config При загрузке в неуправляемое приложение C++
У меня есть COM-компонент, написанный на C#, который вызывает ConfigurationManager.Параметр appsettings.Получить(...). Этот компонент создается внутри неуправляемого приложения C++.
Каждый раз, ConfigurationManager.AppSettings не может прочитать файл конфигурации.
Тут могут быть две проблемы.
1) Что должно делать приложение.config вызывается, когда приложение запущено (то есть имя C++ exe С.config на конце, или имя моей библиотеки классов C# С.config on конец).
2) где должен находиться конфигурационный файл (то есть в той же папке, что и компонент C# COM, или в той же папке, что и C++ exe
Я пробовал различные вызовы ConfigurationManager.OpenExecConfiguration; все не удалось.
В идеале я хочу, чтобы он просто работал без изменений кода. В противном случае, разумный вызов OpenExeConfiguration, так что я все еще могу использовать ConfigurationManager.Параметр appsettings.Получить(...)
Это может быть верхушкой айсберга, потому что я как использовать log4net в C# com-компонент, который использует раздел пользовательских настроек.
Хотя я не против изменить свой собственный код, чтобы использовать настройки доступа через объект config, я не могу изменить код log4net.
Кто-нибудь еще сталкивался с этим раньше? Есть идеи?
2 ответов:
Если вы запустите procmon ( http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx ) пока ваше приложение работает, вы можете видеть *.конфигурационный файл, который он ищет?
Обычно конфигурационный файл находится в том же месте, где находится двоичный файл C#....при запуске сборки в проекте, содержащем приложение.config, который преобразуется в приложение.exe.config, где app-это имя проектного решения, а следовательно, и название .EXE-файл при загрузке и выполнении с помощью .NET framework считывает конфигурационный файл из того же каталога, где находится .Исполняемые находятся.
Comments