无法加载文件或程序集';log4net';在MS测试中使用c++包装器

本文关键字:测试 包装 c++ MS log4net 加载 文件 程序集 | 更新日期: 2023-09-27 17:59:13

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

其他信息:无法加载文件或程序集"log4net,Version=1.1.2.13.0,Culture=neutral,PublicKeyToken=669e0ddf0bb1aa2a"或其依赖项之一。系统找不到指定的文件。

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

无法加载文件或程序集';log4net';在MS测试中使用c++包装器

好消息是,您可以从log4Net站点上提供的Visual Studio源代码构建.net dllhttps://logging.apache.org/log4net/download_log4net.cgi并选择适合您需求的正确目标框架。

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

这篇文章给出了一个很好的解释"如何在Visual Studio.NET或Visual Studio 2005中从本机Visual C++代码调用托管DLL"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生成要在C++项目中使用的托管DLL。