问题标签 [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.

0 投票
1 回答
220 浏览

c# - Mono C#:mkbundle 的“Hello World”脚本在 Web 服务器上仅使用退出代码“11”执行

我想在没有安装 Mono Runtime 的 Web 服务器上运行 Mono(C#) 代码。由于 mkbundle 能够生成本机代码,我首先尝试让一个普通的“Hello World”脚本在双方都工作,它在本地运行但不在 Web 服务器上运行。

C# HelloWorld.cs 脚本:

我使用以下代码进行编译和捆绑: $ gmcs HelloWorld.cs -out:HelloWorld.exe
$ mkbundle -o helloworld HelloWorld.exe --static --deps

我唯一允许在 Web 服务器上执行此脚本的方法是使用 PHP 脚本,该脚本具有以下内容:

在本地,此脚本有效,我得到以下响应:

数组(1){ [0]=> 字符串(13)“你好,世界!” } 整数(0)

但在 Web 服务器上,这就是脚本返回的所有内容

数组(0){}整数(11)

根据这个这个退出代码列表,Bash 退出代码 11 是非标准的。

两台机器都在 64 位 Linux 上,“文件 helloworld”返回以下内容......
在本地机器上:

helloworld:ELF 64 位 LSB 可执行文件,x86-64,版本 1 (SYSV),动态链接(使用共享库),适用于 GNU/Linux 2.6.24,BuildID[sha1]=fbc9731fb13202c604b025ba3eefe51c69dc40d8,未剥离

在网络服务器上:

helloworld:ELF 64 位 LSB 可执行文件,x86-64,版本 1 (SYSV),动态链接(使用共享库),剥离

可能“动态链接(使用共享库),剥离”仍然意味着仍然缺少一些嵌入式库或单声道运行时?

0 投票
1 回答
187 浏览

c# - Mono 在 Linux 上的 mkbundle 使用 XSockets.Plugin.Framework.Composable --> DirectoryNotFoundException 破坏了 XSockets 应用程序

我正在通过将服务器嵌入其中来开发一个自我维持的 Web 应用程序。其中一个服务器是由XSockets提供支持的 WebSocket 服务器。

如果我xbuild解决了然后mono Application.exe- 按预期工作。

如果我然后mkbundle --deps -o nancy-xsockets.so Application.exe ...(注意-o在同一个目录中,...实际上是所需程序集的路径)并按./nancy-xsockets.so预期运行它。

然后,如果我mkbundle --deps -o MKBUNDLE/nancy-xsockets.so Application.exe ...(注意-oNOT BEING 在同一目录中)并运行MKBUNDLE/nancy-xsockets.so- 它按预期工作。

现在,如果我cd MKBUNDLE然后./nancy-xsockets.so我受到这个错误的欢迎:

当工作目录没有.dll' 时,似乎会发生这种情况。

感觉好像 XSockets 找不到配置并且正在回退到默认值。

我该如何解决这个问题?

更新:

值得注意的是mkbundle,我真的指示它把所有东西打包在一起。我最终得到了一个可执行文件“nancy-xsockets.so”,当我运行它时,它会因上述消息而出错。假设 Uffe 的回答可能会有所帮助,显而易见的选择是将可执行文件的根路径添加到 Composable,但在我的情况下Composable.AddLocation似乎没有帮助 - 同样的错误。

我期待看到问题可能出在哪里,因为如果*.dll程序集与一个目录中的单个可执行文件一起使用,它似乎可以工作(可能会加载它们而不是查看捆绑的程序集)。我开始*.dll一个一个地删除文件,直到我偶然发现它正是XSockets.Plugin.Framework.dll.

所以,如果我有这些内容:

随后调用:

最终会出现如上所示的错误。

但是,如果我有:

以下调用完美运行:

这似乎是 XSockets 中的一个问题,更具体地说,XSockets.Plugin.Framework.Composable. 它的静态构造函数似乎正在调用SetPluginCatalog,然后它正在调用AddLocation并且可能在mkbundled.

有没有办法禁用这个“默认”位置?

0 投票
1 回答
1014 浏览

c# - Mkbundle 无法在 OS X 上编译 C# 应用程序

我已经在这方面工作了几天,虽然我很快设法让 Mono 的 mkbundle 在 Windows 和 Linux 上创建本机可执行文件,但我无法为 OS X 做同样的事情。

我正在使用 Mono 3.4.0,因为我需要 .NET 4.5 支持并且能够在 OS X 上为 x86_64 编译也很好。

我目前使用以下简单的 bash 脚本来尝试 mkbundle 构建:

我得到以下输出:

我尝试过的事情:

  • 我发现删除 --static 参数可以让 mkbundle 构建成功。但这只是将上述问题转移到运行时,无论如何我都希望它静态编译。
  • The Mono 3.4.0 release notes mention that mkbundle on Mac OS X now must always link against the Objective-C Runtime. However I cannot figure out how to do so and it doesn't make sense to me in why I'd want to do that.
0 投票
0 回答
255 浏览

linux - 使用 mkbundle 后缺少 libc

我有一个使用 mono 3.0.6 开发的 C# 应用程序。一切都很完美。

我需要将此应用程序部署到不允许安装单声道的生产桌面。所以,我决定使用 mkbundle,使用命令

在目标桌面上,当我尝试执行 myprog 时,它给了我

显然,源机器和目标机器都使用相同的 OpenSuse,只是目标机器没有安装单声道。

我应该错过什么?

TIA。

0 投票
2 回答
776 浏览

.net - 在 OSX 上部署由 mono mkbundle 创建的 .Net 应用程序,无需 mono 运行时

我正在尝试创建用于部署使用单声道 3.10.0 和 mkbundle 编译的 .Net 应用程序的包

mkbundle 命令行:

包已创建,但是当我在没有单声道框架(Maverick OS)的机器上运行它时,出现以下错误。

从 mkbundle 文档中,我了解到 --deps 参数应该将所有必需的库链接到我的包中,并且由于许可问题,我不想使用 --static 标志。

我能够在 OSX 机器上部署我的应用程序而无需安装单声道框架。

我需要在安装中包含哪些文件才能使其在没有安装单声道框架的 OSX 机器上工作。

0 投票
2 回答
1559 浏览

c# - Mono mkbundle 抛出“IKVM.Reflection.BadImageFormatException”

我一直在尝试使用 mkbundle 编译或捆绑我的应用程序。这是我正在执行的脚本:

我不得不添加 MonoPosixHelper.dll,因为我得到了一个 EntryPoint not found 错误。现在我得到了这个奇怪的错误:

我的 .exe 已在 Windows 和 Ubuntu 上成功运行,但我正在尝试捆绑它,以便用户不必下载单声道。

0 投票
1 回答
1104 浏览

.net - mkbundle 没有从当前目录找到依赖项

我正在尝试在 Linux 上使用 Mono 为我的 .net 应用程序创建一个包。当我执行如下 mkbundle 命令时 -

但是,sharedassembly.dll 存在于当前目录中。如何告诉 mkbundle 从当前目录加载文件。

谢谢, 奥姆基

0 投票
3 回答
1236 浏览

c# - Mkbundle Mono 程序集绑定重定向

我有一个在 Windows 上运行良好的示例 .NET 应用程序,我的 Ubuntu 环境使用单声道。

我正在尝试使用 Mkbundle 创建一个单一的本机程序集,这样我就可以使用busybox 将它的容器化并保持尺寸小而不是通常巨大的臃肿容器。

我遇到的问题是 Json.net,我认为这是由于来自 app.config 文件的程序集绑定重定向,还有其他人遇到过这个吗?

并且无论是否使用 --static 都会产生以下错误

在此处输入图像描述

0 投票
0 回答
445 浏览

c# - mkbundle 在 ubuntu 上找不到 gtk-sharp 程序集

我正在尝试为我在 Ubuntu 14 上使用 monodevelop 制作的应用程序创建包。当我执行

抛出错误

我在这里找到了适用于 windows 的解决方案How to make "mkbundle --deps" option working with mono 3.2.3 but nothing for ubuntu。

有人可以帮忙吗?

0 投票
1 回答
255 浏览

macos - Mac OS X 10.7 上的 Mono mkbundle

我正在尝试让 mkbundle 工具在 Mac OS X 10.7 上运行。我安装了 XCode 5,几个不同的 Mono 版本,从 v2 到 v4。每次我尝试编译我的代码时,我都会得到一个

当我试图找到这个命令时,它也不在我的系统上。在谷歌搜索之后,这很难,因为“as”因为过于通用而被过滤掉,我根本找不到解决方案。我能找到的最好的资源说明它是 XCode 的本机编译器,但我已经安装了...

有人可以帮忙吗?