Не удалось загрузить файл или сборку ‘log4net’ в тесте MS из оболочки c ++

Произошло необработанное исключение типа «System.IO.FileNotFoundException» в LoggerLibrary.dll

Дополнительная информация: Не удалось загрузить файл или сборку ‘log4net, Версия = 1.2.13.0, Культура = нейтральная, PublicKeyToken = 669e0ddf0bb1aa2a’ или одна из ее зависимостей. Система не может найти указанный файл.

Log4Net, вызываемая из оболочки c ++, вызывает это исключение
Я добавил вызов в log4Net в начале теста, и он стабилен, почему?
DLL еще не загружена?

0

Решение

Хорошей новостью является то, что вы можете собрать .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 ++.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]