You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下如何将.NET Core生成的DLL链接到Mono C#应用?

没问题,我来一步步告诉你怎么在Linux上把.NET Core生成的DLL集成到Mono C#应用里:

前提先确认两点
  • 先检查你的Mono版本是否兼容目标.NET Core DLL的框架版本:运行mono --version查看版本,一般来说Mono 6.12及以上对.NET Core 3.1+、netstandard2.0的支持比较稳定。
  • 确认你的.NET Core DLL的目标框架:可以查看项目的.csproj文件里的<TargetFramework>节点,或者用dotnet build输出里的信息,优先选择netstandard2.0作为目标框架,这样和Mono的兼容性最好。
具体实现步骤

1. 准备好DLL文件

把.NET Core项目构建生成的DLL(比如MyNetCoreLib.dll)连同它的依赖DLL一起复制到Mono应用项目的可访问目录下——比如专门建一个lib文件夹放这些文件,方便管理。

2. 在Mono项目中添加DLL引用

方式一:手动编辑.csproj文件

如果是用文本编辑器或者VS Code开发,直接打开Mono项目的.csproj文件,添加以下内容:

<ItemGroup>
  <Reference Include="MyNetCoreLib">
    <HintPath>./lib/MyNetCoreLib.dll</HintPath>
  </Reference>
</ItemGroup>

把MyNetCoreLib换成你的DLL名称,HintPath换成实际的文件路径。

方式二:用MonoDevelop图形界面操作

如果用MonoDevelop开发,右键点击项目 → 选择Add → Reference,然后在弹出的窗口里点击Browse,找到你复制过来的DLL文件,添加即可。

3. 编译Mono应用

如果用命令行编译,直接用mcs命令并通过-r参数指定依赖的DLL:

mcs Program.cs -r:./lib/MyNetCoreLib.dll -out:MyMonoApp.exe

这样编译出来的MyMonoApp.exe就已经关联好.NET Core的DLL了。

4. 运行Mono应用

运行时要确保Mono能找到依赖的DLL:

  • 如果DLL和可执行文件在同一目录,直接运行:
    mono MyMonoApp.exe
    
  • 如果DLL在单独的lib文件夹,用--library-path指定路径:
    mono --library-path=./lib MyMonoApp.exe
    
一些关键注意事项
  • API兼容性:有些.NET Core特有的API可能Mono还不支持,如果运行时出现找不到方法的错误,建议把.NET Core库的目标框架改成netstandard2.0,这个标准Mono支持得很完善。
  • 架构匹配:确保你的.NET Core DLL和Mono都是同一架构(比如都是x64),可以用file MyNetCoreLib.dll查看DLL的架构信息,避免运行时出现架构不匹配的崩溃。
  • 依赖链完整:如果你的.NET Core DLL还有其他第三方依赖,一定要把这些依赖DLL也一起复制到Mono应用的目录下,否则运行时会抛出找不到依赖的异常。

内容的提问来源于stack exchange,提问作者Vijay Kumbhani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:49:31