问题标签 [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.
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),动态链接(使用共享库),剥离
可能“动态链接(使用共享库),剥离”仍然意味着仍然缺少一些嵌入式库或单声道运行时?
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 ...
(注意-o
NOT 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
并且可能在mkbundle
d.
有没有办法禁用这个“默认”位置?
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.
linux - 使用 mkbundle 后缺少 libc
我有一个使用 mono 3.0.6 开发的 C# 应用程序。一切都很完美。
我需要将此应用程序部署到不允许安装单声道的生产桌面。所以,我决定使用 mkbundle,使用命令
在目标桌面上,当我尝试执行 myprog 时,它给了我
显然,源机器和目标机器都使用相同的 OpenSuse,只是目标机器没有安装单声道。
我应该错过什么?
TIA。
.net - 在 OSX 上部署由 mono mkbundle 创建的 .Net 应用程序,无需 mono 运行时
我正在尝试创建用于部署使用单声道 3.10.0 和 mkbundle 编译的 .Net 应用程序的包
mkbundle 命令行:
包已创建,但是当我在没有单声道框架(Maverick OS)的机器上运行它时,出现以下错误。
从 mkbundle 文档中,我了解到 --deps 参数应该将所有必需的库链接到我的包中,并且由于许可问题,我不想使用 --static 标志。
我能够在 OSX 机器上部署我的应用程序而无需安装单声道框架。
我需要在安装中包含哪些文件才能使其在没有安装单声道框架的 OSX 机器上工作。
c# - Mono mkbundle 抛出“IKVM.Reflection.BadImageFormatException”
我一直在尝试使用 mkbundle 编译或捆绑我的应用程序。这是我正在执行的脚本:
我不得不添加 MonoPosixHelper.dll,因为我得到了一个 EntryPoint not found 错误。现在我得到了这个奇怪的错误:
我的 .exe 已在 Windows 和 Ubuntu 上成功运行,但我正在尝试捆绑它,以便用户不必下载单声道。
.net - mkbundle 没有从当前目录找到依赖项
我正在尝试在 Linux 上使用 Mono 为我的 .net 应用程序创建一个包。当我执行如下 mkbundle 命令时 -
但是,sharedassembly.dll 存在于当前目录中。如何告诉 mkbundle 从当前目录加载文件。
谢谢, 奥姆基
c# - Mkbundle Mono 程序集绑定重定向
我有一个在 Windows 上运行良好的示例 .NET 应用程序,我的 Ubuntu 环境使用单声道。
我正在尝试使用 Mkbundle 创建一个单一的本机程序集,这样我就可以使用busybox 将它的容器化并保持尺寸小而不是通常巨大的臃肿容器。
我遇到的问题是 Json.net,我认为这是由于来自 app.config 文件的程序集绑定重定向,还有其他人遇到过这个吗?
并且无论是否使用 --static 都会产生以下错误
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。
有人可以帮忙吗?
macos - Mac OS X 10.7 上的 Mono mkbundle
我正在尝试让 mkbundle 工具在 Mac OS X 10.7 上运行。我安装了 XCode 5,几个不同的 Mono 版本,从 v2 到 v4。每次我尝试编译我的代码时,我都会得到一个
当我试图找到这个命令时,它也不在我的系统上。在谷歌搜索之后,这很难,因为“as”因为过于通用而被过滤掉,我根本找不到解决方案。我能找到的最好的资源说明它是 XCode 的本机编译器,但我已经安装了...
有人可以帮忙吗?