Произошло необработанное исключение типа «System.IO.FileNotFoundException» в LoggerLibrary.dll
Дополнительная информация: Не удалось загрузить файл или сборку ‘log4net, Версия = 1.2.13.0, Культура = нейтральная, PublicKeyToken = 669e0ddf0bb1aa2a’ или одна из ее зависимостей. Система не может найти указанный файл.
Log4Net, вызываемая из оболочки c ++, вызывает это исключение
Я добавил вызов в log4Net в начале теста, и он стабилен, почему?
DLL еще не загружена?
Хорошей новостью является то, что вы можете собрать .net DLL из исходного кода Visual Studio, предоставленного на сайте log4Net. https://logging.apache.org/log4net/download_log4net.cgi и выберите правильную целевую структуру, которая соответствует вашим потребностям.
Затем вы можете выставить нужные вам классы как COM-классы, чтобы C ++ мог их использовать. Вам придется добавить несколько интерфейсов в код.
Эта статья дает отличное объяснение «Как вызвать управляемую DLL из собственного кода Visual C ++ в Visual Studio.NET или Visual Studio 2005» https://support.microsoft.com/en-ca/kb/828736
Тогда подпишите свою dll.
sn.exe -k MyKeyFile.SNK
Замените следующие строки кода в файле AssemblyInfo.cs
[assembly: ComVisible(false)]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
со следующим.
[assembly: ComVisible(true)]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("..\\..\\MyKeyFile.SNK")]
Нажмите CTRL + SHIFT + B, чтобы создать управляемую DLL для использования в вашем проекте C ++.
Других решений пока нет …