gpt4 book ai didi

c# - 无法从 C++ 包装器在 MS 测试中加载文件或程序集 'log4net'

转载 作者:行者123 更新时间:2023-11-28 05:34:30 25 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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

这篇文章给出了很好的解释“如何在 Visual Studio.NET 或 Visual Studio 2005 中从 native 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 生成托管 DLL 以在您的 C++ 项目中使用。

关于c# - 无法从 C++ 包装器在 MS 测试中加载文件或程序集 'log4net',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38638042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com