问题标签 [mkbundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 如何在 Linux 上捆绑 Mono / GTK# 应用程序?
这是我遇到的问题:我使用 MonoDevelop 编写了一个 Gtk# 程序,它运行良好。但现在我希望能够在其他 Linux 机器上运行它而无需安装 MonoDevelop。
我的解决方案有两个项目:主 Gtk# 应用程序和它所依赖的 C# 库项目。因此,当我构建主项目时,它会生成 MainProject.exe 和 MainProject.exe.mdb,以及 bin/Release 文件夹中的 DependencyProject.dll。
我尝试运行以下命令将其全部打包到一个可执行文件中(从 bin/Release 文件夹运行):
但是,我从运行该命令得到这个错误:
未处理的异常:
System.IO.FileNotFoundException:无法加载文件或程序集“gtk-sharp”或其依赖项之一。该系统找不到指定的文件。
文件名:'gtk-sharp'
在 System.AppDomain.Load (System.String assemblyString, System.Security.Policy.Evidence assemblySecurity, Boolean refonly) [0x00000] in :0
在 (wrapper remoting-invoke-with-check) System.AppDomain:Load (string,System.Security.Policy.Evidence,bool)
在 System.Reflection.Assembly.ReflectionOnlyLoad (System.String assemblyString) [0x00000] in :0
在 IKVM.Reflection.Universe.DefaultResolver (System.String refname, Boolean throwOnError) [0x00000] in :0
在 IKVM.Reflection.Universe.Load (System.String refname, IKVM.Reflection.Module requestingModule, Boolean throwOnError) [0x00000] in :0
在 IKVM.Reflection.Universe.Load (System.String refname) [0x00000] in :0
在 MakeBundle.QueueAssembly(System.Collections.Generic.List`1 文件,System.String 代码库)[0x00000] 中:0
[错误] 致命的未处理异常:System.IO.FileNotFoundException:无法加载文件或程序集“gtk-sharp”或其依赖项之一。该系统找不到指定的文件。
文件名:'gtk-sharp'
在 System.AppDomain.Load (System.String assemblyString, System.Security.Policy.Evidence assemblySecurity, Boolean refonly) [0x00000] in :0
在 (wrapper remoting-invoke-with-check) System.AppDomain:Load (string,System.Security.Policy.Evidence,bool)
在 System.Reflection.Assembly.ReflectionOnlyLoad (System.String assemblyString) [0x00000] in :0
在 IKVM.Reflection.Universe.DefaultResolver (System.String refname, Boolean throwOnError) [0x00000] in :0
在 IKVM.Reflection.Universe.Load (System.String refname, IKVM.Reflection.Module requestingModule, Boolean throwOnError) [0x00000] in :0
在 IKVM.Reflection.Universe.Load (System.String refname) [0x00000] in :0
在 MakeBundle.QueueAssembly(System.Collections.Generic.List`1 文件,System.String 代码库)[0x00000] 中:0
我看到了一些其他类似问题的 Stack Overflow 问题,但没有一个提供任何实用的解决方案。如何mkbundle
有效地使用此命令?
mono - Mkbundle 不适用于简单程序
我在这里错过了什么......?
在 Ubuntu 服务器(14.04.3 LTS)上安装后,我正在运行一些健全性测试mono
,并在尝试mkbundle
从单站点获得的简单测试应用程序时遇到一些问题。
测试应用程序如下所示:
当hello.exe
我使用mcs
.
但是,当我随后运行时mkbundle -o hello hello.exe --deps
,此步骤失败。结果消息如下:
这是我第一次合作,mkbundle
所以如果我错过了一些关键步骤,我不会感到惊讶。有人对这个谜题有什么想法吗?
我正在运行安装的mono-complete
软件包。
linux - mkbundle System.ComponentModel.Win32Exception 错误
我正在尝试在 archlinux 上捆绑我在 monodevelop 中制作的应用程序。
在 monodevelop 中构建应用程序后,我将使用以下命令制作一个捆绑包:
但输出是:
因为我正在静态链接单声道,所以我必须从 AUR 安装 mono-git 以确保我拥有静态库。
我也不确定为什么它as -o temp.o temp.s
列出了两个。
任何帮助,将不胜感激。
编辑 23NOV:我刚刚重新确认as
并cc
已安装。版本输出位于: http: //pastebin.com/ka25tjWZ
编辑 24NOV:如接受的答案中所述;我的单声道没有正确编译。我使用带有以下 PKGBUILD 的 abs 进行了重建,它现在按预期工作。
mono - mkbundle 生成的二进制文件在 ARMv7h 上导致 SIGSEGV,而在 Mono 中运行良好
我目前正在 ARMv7h 上的 archlinux 中测试 Mono。首先,我测试了这个简单的程序:
我使用 Mono 作为通过 安装的本机包pacman
,而不是交叉编译。运行时,它的行为符合预期:
当我尝试使用 捆绑这个程序集mkbundle
时,它编译时没有任何错误:
/usb/ 是已安装的外部 USB 驱动器。mkbundle
作为 root 调用。当我尝试运行结果二进制文件时:
并返回外壳。二进制文件不提供任何附加信息。我错过了这个特定架构的标志吗?
xamarin - 如何使用 mkbundle --static 标志为 mac 控制台应用程序构建 pkg
我使用 Xamarin Studio 编写了一个控制台 Mac 实用程序。
然后我使用以下方法创建了一个包:
- mkbundle myapp.exe *.dll -o myapp --deps
- pkgbuild --analyze --root 发布名称.plist
- pkgbuild --root 发布 --component-list name.plist --sign "john doe" --install_location /Applications/myapp myapp.pkg
在另一台机器上安装 myapp.pkg 并尝试运行该应用程序时,出现运行时错误“从 myapp 引用的 libmonoboehm-2.0.1.dylib - 找不到图像”。
这表明该机器没有安装单声道运行时。这是正确的,它没有安装单声道运行时。
我尝试使用“--static”选项运行 mkbundle。但是,然后 pkgbuild --analyze 返回一个空的组件列表。
我的问题是如何在使用带有 --static 标志的 mkbundle 时构建部署 pkg?这可能吗?
提前致谢
linker - 在使用时使用 mono mkbundle 工具创建静态编译的二进制文件
我正在尝试使用 mkbundle 生成静态编译的二进制文件,但是在涉及使用<bindingRedirect>
配置文件的依赖项时遇到问题。
如果提供了 --deps 选项,mkbundle 会尝试加载引用的程序集,但找不到在运行时根据 app.config 中的 bindingRedirect 重定向的引用。
<bindingRedirect>
使用 mkbundle 时处理依赖关系的正确方法是什么?
命令:
user@user-lubuntu: mkbundle --deps --static Integrate.ServiceName.Gateway.exe *.dll -o newbin
结果:
我们通读了这个类似的 stackoverflow 问题: Mkbundle Mono Assembly binding redirection
但是,手动包含文件的解决方案似乎对我们不起作用:
命令:
user@user-lubuntu: mkbundle --nodeps --static Integrate.ServiceName.Gateway.exe ALL_PACKAGES_WITH_FULL_PATH_SEPARATED_BY_SPACES -o newbin
结果:
user@user-lubuntu: ./newbin
gcc - 使用 Mono 的 mkbundle 从 linux 交叉编译 ARM
我正在尝试使用 Mono 的 mkbundle 工具从 AMD64 系统(在 VM 中运行的 Ubuntu 14.04)为 ARM(RaspberryPi)编译本机应用程序。
Mono 版本是 4.4.2.11(最新,在这样做的时候),从Mono 的包存储库安装,但也尝试使用 4.2.3.4。
我在跑:
如果我在 RaspberryPi 本身上运行它,这很好用(尽管我不需要设置 CC 和 AS 变量)。
如果我从我的 AMD64 VM 运行它,它最终会运行以下命令:
结果是:
/usr/lib/pkgconfig/../../lib/libmono-2.0.a:添加符号时出错:文件格式无法识别 collect2:错误:ld 返回 1 退出状态
意识到它libmono-2.0.a
来自特定于架构的包,我从http://download.mono-project.com/repo/debian/pool/main/m/mono/下载了 armel 架构包并将其解压缩到我的主目录中(所以有一个/home/gregmac/libmono-armel/usr/lib/libmono-2.0.a
),然后尝试:
我也尝试将 LIBRARY_PATH 和 LD_LIBRARY_PATH 设置为/home/gregmac/libmono-armel/usr/lib
,但总是遇到同样的问题。
完整输出(包括 -v 选项):
我也尝试了相同的命令,但没有--static
,并得到相同的错误,但关于.so
而不是.a
文件:
/usr/lib/pkgconfig/../../lib/libmono-2.0.so:文件无法识别:文件格式无法识别 collect2:错误:ld 返回 1 退出状态
我在这里遗漏了一些明显的东西吗?为什么 gcc 仍在寻找/usr/lib/
而不是/home/gregmac/libmono-armel/usr/lib
?我应该设置其他一些环境变量,以便原始mkbundle
命令可以正确调用它吗?
c# - 在 Windows 上,mkbundle 因链接器错误而失败
我正在尝试构建一个需要在可能未安装 .NET 的环境中运行的控制台实用程序。Mono 的 mkbundle 似乎是解决这个问题的一个很好的解决方案,但是当通过 cygwin 在 Windows 10 上运行 mkbundle (Mono 4.6.1.3) 时,这是我收到的输出:
为了做到这一点,我安装了最新的 windows SDK 并设置了 INCLUDE 和 LIB 环境变量,但我对如何解决这些链接器错误有点困惑。
c# - C# winforms Mono mkbundle - 'as' 未被识别为内部或外部命令、可运行程序或批处理文件
我一直在尝试让我的 C# winforms 应用程序使用 Mono 在 Linux 和 Mac 上运行。该程序使用以下方法运行并正常工作:
但是,我想将 Mono 与程序打包,所以我一直在使用 mkbundle 命令。我的确切输入是这样的:
Mono 似乎可以很好地嵌入所有 dll(最后是第 3 方),但随后输出此错误:
关于问题出在哪里的任何线索?