繁体   English   中英

无法从C ++包装器在MS测试中加载文件或程序集“ log4net”

[英]Could not load file or assembly 'log4net' in MS test from a c++ wrapper

LoggerLibrary.dll中发生了'System.IO.FileNotFoundException'类型的未处理异常

附加信息:无法加载文件或程序集'log4net,版本= 1.2.13.0,区域性=中性,PublicKeyToken = 669e0ddf0bb1aa2a'或其依赖项之一。 该系统找不到指定的文件。

从c ++包装器调用的log4Net导致此异常,我在测试开始时向log4Net添加了一个调用,它很稳定,为什么? DLL还没有加载吗?

好消息是,您可以从log4Net网站https://logging.apache.org/log4net/download_log4net.cgi提供的Visual Studio源代码构建.net dll,然后选择适合您需求的目标框架。

然后,您可以将所需的类公开为COM类,以便C ++可以使用它们。 您必须在代码中添加一些接口。

本文给出了一个很好的解释“如何从Visual Studio.NET或Visual Studio 2005中的本机Visual C ++代码调用托管DLL” https://support.microsoft.com/zh-cn/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生成要在C ++项目中使用的托管DLL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM