无法加载文件或程序集';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站点上提供的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。