Компонент 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.



Кто-нибудь еще сталкивался с этим раньше? Есть идеи?

581   2  

2 ответов:

Если вы запустите procmon ( http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx ) пока ваше приложение работает, вы можете видеть *.конфигурационный файл, который он ищет?

Обычно конфигурационный файл находится в том же месте, где находится двоичный файл C#....при запуске сборки в проекте, содержащем приложение.config, который преобразуется в приложение.exe.config, где app-это имя проектного решения, а следовательно, и название .EXE-файл при загрузке и выполнении с помощью .NET framework считывает конфигурационный файл из того же каталога, где находится .Исполняемые находятся.

Comments

    Ничего не найдено.