Проблема в том, что при активации COM по умолчанию ваш управляемый компонент запускается в домене приложений по умолчанию, который наследует свое имя конфигурации от хоста .exe (например, если вы работаете в cscript.exe, он хочет найти cscript. exe.config рядом с cscript.exe, который вам не принадлежит). Самый простой способ решить эту проблему - создать управляемую прокладку, которая раскручивает новый домен приложений, затем загружает сборку туда, указывает файл XXX.dll.config, который вы хотите использовать в объекте AppDomainSetup, затем создает и возвращает объект в новый домен приложений. По сути, это означает, что вам нужно создать небольшой управляемый объект фабрики, который гарантирует, что .NET запущен и работает, и что ваш новый домен приложений был создан (желательно только один раз - используйте существующий домен, если создаете второй объект в том же процессе), а затем возвращает управляемый объект размещен в нужном месте. Вы можете сделать процесс полностью прозрачным, если вы хотите написать неуправляемую оболочку, которая полностью реализует фабрику классов COM, но это немного более продвинуто ...