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

Mono运行FSharp.Charting.Gtk编译产物报FileNotFoundException问题求助

问题原因

你遇到的运行时报错核心原因是:#load 指令仅在F#交互(fsharpi)环境下生效,它会自动加载fsx脚本内关联的所有程序集依赖、导入对应命名空间,但fsharpc编译时完全不识别#load指令,你未在编译阶段显式指定FSharp.Charting.Gtk的程序集引用,运行时自然找不到对应dll文件。

编译模式下的解决步骤
  • 编译时显式添加程序集引用
    首先删除源码中的#load指令,编译时用-r参数指定FSharp.Charting.Gtk.dll的路径,同时要把它依赖的所有相关dll(比如GtkSharp相关程序集、FSharp.Charting核心dll)都一起引入,编译命令示例:
    fsharpc -r:FSharp.Charting.Gtk.2.1.0/lib/net45/FSharp.Charting.Gtk.dll 你的源码文件名.fs
    
  • 运行前补齐所有依赖文件
    编译完成后,把FSharp.Charting.Gtk.dll、以及它所在目录下的所有依赖dll都复制到你生成的exe所在文件夹,Mono运行时才能成功加载全部依赖。
  • M1芯片环境兼容适配
    M1架构macOS默认安装的Mono多为x86_64版本,需要通过Rosetta转译运行,或者安装适配arm64的Mono版本,运行exe时如果出现架构不兼容问题,用以下命令启动:
    arch -x86_64 mono 你的生成exe文件名.exe
    
  • 补充优化:如果图表窗口出现一闪而过的情况,可在绘图代码末尾添加一行System.Console.ReadLine(),让程序等待输入后再退出,方便查看生成的图表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:57:04