问题遇到的现象和发生背景
在linux系统中,安装有mono环境,运行c#的exe时,无法加载dll动态文件
用代码块功能插入代码,请勿粘贴截图
以下为简答的控制台程序,dllimport一个dll文件,
namespace linux_csharp_frame
{
internal class Program
{
public class Test
{
[DllImport("linuxdll.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int Sum(int a, int b);
}
static void Main(string[] args)
{
Console.WriteLine(Test.Sum(666, 666));
}
}
}
###### 运行结果及报错内容
提示dllnotfound异常
```bash
Unhandled Exception:
System.DllNotFoundException: linuxdll assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) linux_csharp_frame.Program+Test.Sum(int,int)
at linux_csharp_frame.Program.Main (System.String[] args) [0x00001] in <d887b5261b3e40c0b3913ca2d1acb55b>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: linuxdll assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) linux_csharp_frame.Program+Test.Sum(int,int)
at linux_csharp_frame.Program.Main (System.String[] args) [0x00001] in <d887b5261b3e40c0b3913ca2d1acb55b>:0
我的解答思路和尝试过的方法
我将linuxdll这个文件放在exe目录下,也放在/usr/lib中,也编辑了/etc/mono/config中加入dll map,以及写了xxx.exe.config里面的configuture
我是参考的 https://www.mono-project.com/docs/advanced/pinvoke/ 这里,可能阅读水平不够,不理解里面讲的
我想要达到的结果
怎么加载运行呀