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

使用mkbundle打包GTK独立应用时遇TypeLoadException错误求助

mkbundle打包GTK#独立应用失败:System.TypeLoadException找不到System程序集

我最近在尝试用Mono的mkbundle工具打包一个仅加载窗口的小型GTK#程序,目的是生成可以在未安装Mono及相关依赖库的嵌入式系统中运行的独立二进制文件,但遇到了一个棘手的TypeLoadException问题,希望社区能帮忙看看。

已做的准备工作

  • 我已经为所有依赖项准备了本地副本,相关的.dll文件和对应的dll映射配置文件都放在了程序的Debug目录下(如果不使用本地副本,mkbundle命令直接执行失败)。
  • 执行的mkbundle命令如下:
mkbundle -o App App.exe --simple --deps --machine-config "/usr/etc/mono/4.5/machine.config" --config "/etc/mono/config"
  • 命令执行完成后,输出显示已经成功链接了所需的程序集和库,包括/etc/mono/config中的DLL以及GTK相关依赖项。

遇到的问题

运行生成的二进制文件./App时,程序直接崩溃,抛出了以下错误:

Unhandled Exception: System.TypeLoadException: Could not set up parent class, due to: Could not set up parent class, due to: Could not set up parent class, due to: Could not set up parent class, due to: Could not set up parent class, due to: Could not set up parent class, due to: Could not set up parent class, due to: Could not load type of field 'GLib.Object:before_handlers' (15) due to: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. assembly:glib-sharp.dll type:Object member:(null) assembly:glib-sharp.dll type:InitiallyUnowned member:(null) assembly:gtk-sharp.dll type:Object member:(null) assembly:gtk-sharp.dll type:Widget member:(null) assembly:gtk-sharp.dll type:Container member:(null) assembly:gtk-sharp.dll type:Bin member:(null) assembly:gtk-sharp.dll type:Window member:(null)
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not set up parent class, due to: Could not set up parent class, due to: Could not set up parent class, due to: Could not set up parent class, due to: Could not set up parent class, due to: Could not set up parent class, due to: Could not set up parent class, due to: Could not load type of field 'GLib.Object:before_handlers' (15) due to: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. assembly:glib-sharp.dll type:Object member:(null) assembly:glib-sharp.dll type:InitiallyUnowned member:(null) assembly:gtk-sharp.dll type:Object member:(null) assembly:gtk-sharp.dll type:Widget member:(null) assembly:gtk-sharp.dll type:Container member:(null) assembly:gtk-sharp.dll type:Bin member:(null) assembly:gtk-sharp.dll type:Window member:(null)

排查情况

我已经多次重复这个打包流程,确认没有外部依赖的小型控制台应用可以正常打包并运行,所以问题应该出在GTK#相关的依赖处理上。

有没有朋友遇到过类似的问题?或者能帮我指出操作中的失误,提供可行的解决方案?


内容的提问来源于stack exchange,提问作者Ricardo Ferreira da Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:28:23