我认为MKBundle2的目的是允许一台没有单声道的机器运行单声道应用程序。但它似乎并不是包装libmono.so。我不确定它是否应该是不是,但目的地机器正在抱怨我运行捆绑包时无法找到libmono.so.0。为什么要找那份文件?如果需要,为什么它会在任何地方看,而是在捆绑?如果它应该在捆绑中,为什么没有mkbundle2把它放在那里?我正在使用包含所有依赖项的“--deps”选项。我错过了什么?

添加--static选项后,我在目标机器上获取此结果:

未处理的例外:system.typeinitializationException:system.windows.forms.xplatui的初始化程序类型抛出异常---> system.dllnotfoundException:libc 在(包装器管理到母语)system.windows.forms.xplatui:uname(intptr) 在system.windows.forms.xplatui..cctor()[0x00000]中:0

使用导出mono_log_level= debug显示更多信息:

单声道信息:Dllimport尝试加载:'libc'。 单声道信息:dllimport加载位置:'libc.so'。 单声道信息:dllimport错误加载库:'/usr/lib64/libc.so:无效的elf header'。 单声道信息:dllimport加载库:'./libc.so'。 单声道信息:dllimport错误加载库'./libc.so:无法打开共享对象文件:没有这样的文件或目录'。 单声道信息:dllimport loading:'libc'。 单声道信息:dllimport错误加载库'libc:无法打开共享对象文件:没有这样的文件或目录'。

这是否意味着我正在尝试使用不兼容的硬件运行机器?两台机器都是SUSE Linux Enterprise Server 11(x86_64)。

有帮助吗?

解决方案

这里我们有:

- deps:此选项将为所有引用的装配捆绑在一起 命令行选项上列出的程序集。这对于分发自包含图像是有用的。

您是否确定您不会忘记在命令行上引用程序集?

从此线程:

mono社区>常规> mono社区> mkbundle,静态,lgmodule

似乎MKBundle不负责包装此组件。用户通过安装缺少的Glib相关包来解决问题。

看看静态参数这里

- 静态:默认情况下,mkbundle动态链接到mono和 glib 。这个选项 导致它静态链接。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top