问题标签 [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.
macos - mkbundle 的结果抛出“找不到符号:_kCFLocaleCountryCode”
我正在尝试在 mac OS X v. 10.12.1 上制作一组简单的 fsharp 代码,当我运行结果时出现错误。我可以找到的对类似 _kCFLocaleCountryCode 错误的引用似乎与我的问题不匹配。任何帮助将非常感激。
谢谢,乔恩
代码是一个 fsharp 脚本 test.fsx:
使用 F# Compiler for F# 4.0(开源版)编译,形成 Mono 4.4.1 (mono-4.4.0-branch-c7sr0/4747417。下面附上会发生什么。
c++ - Mono:mkbundle 无法创建带有错误的二进制文件
我正在试验mkbundle
我有一个简单的addApp.exe
文件,它调用一个方法addition.dll
我正在尝试为powerpc linux
硬件目标创建二进制文件。我已经使用eldk-toolchain
for编译了单声道,powerpc
并在目标上使用了mkbundle
该版本的单声道。
我正在尝试mkbundle
如下使用
上述命令的输出是
我已经尝试了所有可能的方法来摆脱这个错误,但徒劳无功。请需要帮助
c# - Mono 中 mkbundle 的交叉编译问题
我在尝试通过 mkbundle 工具在 Mono Linux 上使用新的交叉编译/链接功能时遇到了一些问题。我在 Intel x86 环境中使用 Linux Mint 14.04 32 位,我想使用 mkbundle 为 64 位平台创建一个静态二进制文件。作为参考,我使用的是 Mono,版本 4.6.2
根据文档,我需要首先获得目标目标文件,所以我尝试从服务器获取它:
但正如您所注意到的,无论我尝试下载什么文件,我总是会遇到同样的错误。
我注意到我的版本(4.6.2)没有文件,所以我不确定这是否是问题的根源。
任何人都可以给我任何关于发生了什么的线索吗?
非常感谢您提前。
mono - mkbundle 和 MEF
我编写了一个应用程序,该应用程序在我的目标 Linux BeagleBone Black 上运行,并带有 Debian 8 衍生操作系统。
如果我安装整个单声道运行时,它将运行。这对于我将运行它的最终目标来说太大了。
我想使用 mkbundle 创建一个嵌入所有内容的静态包。
我遇到的问题是我在这个应用程序中使用 MEF 和依赖注入,当我运行 mkbundle 创建的最终包时,我收到如下所示的错误。
我怀疑这是因为 MEF 和/或我的应用程序被编写为通过加载 DLL 程序集来加载大部分导出,并且它们嵌入在包中。
任何人都可以对此有所了解吗?
这是错误:
c# - 在 Windows 中使用 mkbundle 静态链接 Mono
我在 Windows 中使用 mkbundle 静态链接 Mono 时遇到问题。在我试图弄清楚发生了什么的过程中,我碰了壁。当您将静态标志传递给 Windows 中的 mkbundle 时,它会在 mono 目录中查找文件 monosgen-2.0-static.lib。该目录由以下行定义:
string monoPath = GetEnv("MONOPREFIX", @"C:\Program Files (x86)\Mono");
安装mono 5.1.1后这个目录的内容是:
首先,我注意到文件命名约定与 mkbundle 正在寻找的不同(monosgen-2.0 应该是 mono-2.0-sgen)。我可以很好地改变它,但是我怀疑 - 给定文件名 - 屏幕截图中显示的 mono-2.0-sgen.lib 文件不是静态编译的,因为当我尝试运行我的捆绑应用程序时它首先不能找到sgen dll,然后找不到其他的。
在这一点上,我想知道 mkbundle 是否在 Windows 上正式工作,如果它确实是我做的根本错误?我看过较早的帖子寻求帮助在 Windows 中设置 mkbundle,并且我自己也发布了关于此的问题。大多数都指向使用 mingw 而不是 cl.exe。我应该改用这个吗?
此代码段的来源如下所示。你可以在这里找到完整的源代码https://github.com/mono/mono/blob/master/mcs/tools/mkbundle/mkbundle.cs。
linux - 无法在 Linux 下的单声道应用程序上运行 mkbundle
我刚刚发现了 mkbundle,并希望使用它来将我的 mono 应用程序变成一个可以在 Linux 机器上运行而无需安装 Mono 的可执行文件。
我收到大量错误消息,如下所示:
(剩余部分被截断 - 有数千个)。
我究竟做错了什么?
mono - mkbundle 在 MakeBundle.QueueAssembly 中崩溃 - 空引用异常
我一直在尝试使用mkbundle捆绑我们的墨水编译器。这是我的运行方式:
mkbundle --static --sdk /Library/Frameworks/Mono.framework/Versions/Current --deps inklecate.exe ink-engine-runtime.dll -o inklecate_mac
...但我因以下堆栈跟踪而崩溃:
Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
at MakeBundle.QueueAssembly (System.Collections.Generic.List`1[T] files, System.String codebase) [0x000bc] in <984a17ca6b0b4a0286f5e4481cb18cc8>:0
at MakeBundle.QueueAssembly (System.Collections.Generic.List`1[T] files, System.String codebase) [0x000bc] in <984a17ca6b0b4a0286f5e4481cb18cc8>:0
at MakeBundle.Main (System.String[] args) [0x00d5f] in <984a17ca6b0b4a0286f5e4481cb18cc8>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
at MakeBundle.QueueAssembly (System.Collections.Generic.List`1[T] files, System.String codebase) [0x000bc] in <984a17ca6b0b4a0286f5e4481cb18cc8>:0
at MakeBundle.QueueAssembly (System.Collections.Generic.List`1[T] files, System.String codebase) [0x000bc] in <984a17ca6b0b4a0286f5e4481cb18cc8>:0
at MakeBundle.Main (System.String[] args) [0x00d5f] in <984a17ca6b0b4a0286f5e4481cb18cc8>:0
它曾经工作得很好......也许自从我不久前更新了单声道后它就坏了?我目前使用的是5.2.0.224版本。
(如果你想在 Mac 上重现,你应该能够获取我上面链接的 git repo,然后运行build_for_inky.command
脚本。)
c# - 使用 mkbundle 构建的 C# 应用程序不起作用
我正在尝试使用 MkBundle 构建这个 C# 程序,以便用户可以在 Linux 上运行它而无需安装 Mono。
但是在尝试使用已构建的程序时,我不断收到错误消息。
重现步骤:
- Git克隆这个项目:
https://github.com/nddipiazza/Sharepoint-Exporter
- 从中提取 DLL:
https://www.microsoft.com/en-us/download/confirmation.aspx?id=35585 -
在解决方案资源管理器中,右键单击引用 -> 添加引用 -> 浏览 .NET 程序集 -> 添加 Microsoft sharepoint DLL
- Microsoft.SharePoint.Client.dll
- Microsoft.SharePoint.Client.Runtime.dll
构建应用程序。
(或者只是从这里获取构建的应用程序https://drive.google.com/a/lucidworks.com/file/d/1GPgkmike9KYTDBGLuNj0R_0Q_FDQdhKr/view?usp=sharing)
- 跑:
mkbundle --simple --static --deps -o ./SpFetcher bin/Release/SpPrefetchIndexBuilder.exe
请注意,捆绑包似乎已成功构建:
现在运行
./SpFetcher
程序在带有 Mono 的机器上,它工作正常。
在没有单声道的机器上,您会收到以下错误:
无法识别 URI 前缀。在 System.Net.WebRequest.Create (System.Uri requestUri, System.Boolean useUriBase) [0x000ae] in <50d80b08c1a5449282b22aedf03ce925>:0 在 System.Net.WebRequest.Create (System.String requestUriString) [0x00014] 在 <50d80b08c1a5449282b22aedf03ce 0 在 Microsoft.SharePoint.Client.SPWebRequestExecutor..ctor (Microsoft.SharePoint.Client.ClientRuntimeContext 上下文,System.String requestUrl) [0x0002e] 在:0 在 Microsoft.SharePoint.Client.DefaultWebRequestExecutorFactory.CreateWebRequestExecutor (Microsoft.SharePoint.Client. ClientRuntimeContext 上下文,System.String requestUrl) [0x00021] 在:0 在 Microsoft.SharePoint.Client.ClientContext.GetFormDigestInfoPrivate () [0x0000d] 在:0 在 Microsoft.SharePoint.Client.ClientContext.EnsureFormDigest () [0x0001f] 在:
预计不会出现该错误。
mkbundle
程序不能正常工作吗?
我正在尝试 mkbundle 的 c# 程序:https ://drive.google.com/a/lucidworks.com/file/d/1GPgkmike9KYTDBGLuNj0R_0Q_FDQdhKr/view?usp=sharing
mkbundled 结果:https ://drive.google.com/file/d/13kHG-RxSqfMFlE53wCSe9iqfwOzheKUm/view?usp=sharing
更新:我在 mkbundle 问题跟踪器上创建了一张票。https://bugzilla.xamarin.com/show_bug.cgi?id=60753#bug_status_bottom
c# - 在 mkbundle 中使用 --static 选项时未在目标上找到 mscorlib.dll
在这里张贴作为最后的手段。欢迎大家支持。
我正在尝试为我无法修改操作系统或系统文件夹的 armv5tejl 目标设备交叉编译一个独立的单声道应用程序。从 mkbundle 执行输出(可执行应用程序)时的目标设备响应看起来好像正在运行单声道命令而不是应用程序(见下文)。
我已经在谷歌和这里搜索并发布到单声道邮件列表,但还没有回复。我已经尝试过多次迭代 mkbundle 和 switch。
在其他链接中,我发现此Mono 返回错误:未找到 mono mscorlib.dll但它没有帮助,因为我无法修改目标机器,并且我正在尝试将 mono 运行时与应用程序捆绑在一起,因此它是自包含的。
我读了这个http://www.mono-project.com/archived/guiderunning_mono_applications/我注意到的一件事是这个页面上 mkbundle 的输出列出了嵌入的单词,而我只看到“尝试加载程序集”
我有一个简单的 Hello World 项目
使用系统;
namespace et2 { class MainClass { public static void Main (string[] args) { Console.WriteLine ("Hello World!"); } } }
我在 .Net 4.6.1 的 Ubuntu 64 位 VM 中使用 MonoDevelop 编译以提供 et2.exe 和 et2.mdb 文件。
然后我运行 mkbundle
运行“文件应用程序”给出
当我将文件应用程序复制到目标设备并尝试执行时,我得到以下响应,看起来好像我正在执行单声道,但应用程序应该是捆绑的应用程序。
如果我在目标设备上尝试“./app app”,我会得到
在目标设备上运行“ldd app”给出
在目标设备上运行“uname -a”会给出
一些笔记
- 我已经搜索和搜索
- 我已阅读有关 mkbundle 和“man mkbundle”的信息,并阅读了 mono 网站上的许多文档
- 我只能修改目标设备上的一个文件夹
- 安装单声道或更新目标设备不是一种选择。
- 我不确定为什么 ./app 应用程序在看起来被 mkbundle 嵌入到应用程序中时正在寻找 mscorlib.dll,(可能是错误的版本?)
- 使用的单声道版本
user@ubuntu:~/dev/tmp$ mono --version Mono JIT 编译器版本 5.8.0.108(tarball Fri Jan 19 18:15:21 UTC 2018) 版权所有 (C) 2002-2014 Novell, Inc、Xamarin Inc 和贡献者。www.mono-project.com TLS:__thread SIGSEGV:altstack 通知:epoll 架构:amd64 已禁用:无 杂项:softdebug LLVM:支持,未启用。GC:sgen(默认并发)
- VM 用于开发信息 user@ubuntu:~/dev/tmp$ uname -a Linux ubuntu 4.13.0-32-generic #35~16.04.1-Ubuntu SMP Thu Jan 25 10:13:43 UTC 2018 x86_64 x86_64 x86_64 GNU /Linux
感谢任何阅读本文并提出建议或可以提供帮助的人。
twgcim1
编辑,更新
如果我将 mscorlib.dll 从/usr/lib/mono/4.5/mscorlib.dll
与目标设备中的应用程序复制到同一文件夹并设置MONO_PATH=.
然后尝试执行时./app app
我得到以下响应
c# - Linux 上的 Mono:mkbundle 找不到共享库
我有一个小型 C# 应用程序,我想将其转换为本机可执行二进制文件。
csc Foo.cs
运行时没有警告,我可以毫无问题地运行应用程序:mono Foo.exe
.
但是,当我启动 mkbundle 时,我收到此错误:
我在通过 using/usr/lib/mono/...
将其中一个的父目录传递给之后发现了 I18N.dll 的各种版本,这一切都有效。mkbundle
-L
但为什么我必须这样做?-L
我在网上找到的任何示例中都没有使用该选项。
我是否处于“自定义模式”?如果是这样,什么是自定义模式?我宁愿认为这是缺少环境变量的问题,但我不知道我必须改变什么。
非常感谢!