LoggerLibrary.dll中发生了未处理的“System.IO.FileNotFoundException”类型异常
附加信息:无法加载文件或程序集'log4net,Version = 1.2.13.0,Culture = neutral,PublicKeyToken = 669e0ddf0bb1aa2a'或其依赖项之一 . 该系统找不到指定的文件 .
从c包装器调用的log4Net导致这个问题我在测试开始时添加了对log4Net的调用并且它是稳定的,为什么? DLL没有加载吗?
好消息是你可以从log4Net网站https://logging.apache.org/log4net/download_log4net.cgi提供的Visual Studio源代码构建.net dll,并选择适合你需要的正确目标框架 .
然后,您可以将所需的类公开为COM类,以便C可以使用它们 . 您必须为代码添加一些接口 .
这篇文章给出了很好的解释"How to call a managed DLL from native Visual C++ code in Visual Studio.NET or in 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以生成要在C项目中使用的托管DLL .
1 回答
好消息是你可以从log4Net网站https://logging.apache.org/log4net/download_log4net.cgi提供的Visual Studio源代码构建.net dll,并选择适合你需要的正确目标框架 .
然后,您可以将所需的类公开为COM类,以便C可以使用它们 . 您必须为代码添加一些接口 .
这篇文章给出了很好的解释"How to call a managed DLL from native Visual C++ code in Visual Studio.NET or in Visual Studio 2005" https://support.microsoft.com/en-ca/kb/828736
然后签下你的dll .
sn.exe -k MyKeyFile.SNK
替换AssemblyInfo.cs文件中的以下代码行
以下内容 .
按CTRL SHIFT B以生成要在C项目中使用的托管DLL .