问题标签 [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 回答
92 浏览

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。下面附上会发生什么。

0 投票
0 回答
160 浏览

c++ - Mono:mkbundle 无法创建带有错误的二进制文件

我正在试验mkbundle 我有一个简单的addApp.exe文件,它调用一个方法addition.dll

我正在尝试为powerpc linux硬件目标创建二进制文件。我已经使用eldk-toolchainfor编译了单声道,powerpc并在目标上使用了mkbundle该版本的单声道。

我正在尝试mkbundle如下使用

上述命令的输出是

我已经尝试了所有可能的方法来摆脱这个错误,但徒劳无功。请需要帮助

0 投票
2 回答
322 浏览

c# - Mono 中 mkbundle 的交叉编译问题

我在尝试通过 mkbundle 工具在 Mono Linux 上使用新的交叉编译/链接功能时遇到了一些问题。我在 Intel x86 环境中使用 Linux Mint 14.04 32 位,我想使用 mkbundle 为 64 位平台创建一个静态二进制文件。作为参考,我使用的是 Mono,版本 4.6.2

根据文档,我需要首先获得目标目标文件,所以我尝试从服务器获取它:

但正如您所注意到的,无论我尝试下载什么文件,我总是会遇到同样的错误。

我注意到我的版本(4.6.2)没有文件,所以我不确定这是否是问题的根源。

任何人都可以给我任何关于发生了什么的线索吗?

非常感谢您提前。

0 投票
1 回答
44 浏览

mono - mkbundle 和 MEF

我编写了一个应用程序,该应用程序在我的目标 Linux BeagleBone Black 上运行,并带有 Debian 8 衍生操作系统。

如果我安装整个单声道运行时,它将运行。这对于我将运行它的最终目标来说太大了。

我想使用 mkbundle 创建一个嵌入所有内容的静态包。

我遇到的问题是我在这个应用程序中使用 MEF 和依赖注入,当我运行 mkbundle 创建的最终包时,我收到如下所示的错误。

我怀疑这是因为 MEF 和/或我的应用程序被编写为通过加载 DLL 程序集来加载大部分导出,并且它们嵌入在包中。

任何人都可以对此有所了解吗?

这是错误:

0 投票
0 回答
466 浏览

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

0 投票
0 回答
134 浏览

linux - 无法在 Linux 下的单声道应用程序上运行 mkbundle

我刚刚发现了 mkbundle,并希望使用它来将我的 mono 应用程序变成一个可以在 Linux 机器上运行而无需安装 Mono 的可执行文件。

我收到大量错误消息,如下所示:

(剩余部分被截断 - 有数千个)。

我究竟做错了什么?

0 投票
0 回答
174 浏览

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脚本。)

0 投票
1 回答
1299 浏览

c# - 使用 mkbundle 构建的 C# 应用程序不起作用

我正在尝试使用 MkBundle 构建这个 C# 程序,以便用户可以在 Linux 上运行它而无需安装 Mono。

但是在尝试使用已构建的程序时,我不断收到错误消息。

重现步骤:

  1. Git克隆这个项目:

https://github.com/nddipiazza/Sharepoint-Exporter

  1. 从中提取 DLL:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=35585 -

  1. 在解决方案资源管理器中,右键单击引用 -> 添加引用 -> 浏览 .NET 程序集 -> 添加 Microsoft sharepoint DLL

    • Microsoft.SharePoint.Client.dll
    • Microsoft.SharePoint.Client.Runtime.dll
  2. 构建应用程序。

(或者只是从这里获取构建的应用程序https://drive.google.com/a/lucidworks.com/file/d/1GPgkmike9KYTDBGLuNj0R_0Q_FDQdhKr/view?usp=sharing

  1. 跑:

mkbundle --simple --static --deps -o ./SpFetcher bin/Release/SpPrefetchIndexBuilder.exe

请注意,捆绑包似乎已成功构建:

  1. 现在运行./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

0 投票
0 回答
745 浏览

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”会给出

一些笔记

    1. 我已经搜索和搜索
    1. 我已阅读有关 mkbundle 和“man mkbundle”的信息,并阅读了 mono 网站上的许多文档
    1. 我只能修改目标设备上的一个文件夹
    1. 安装单声道或更新目标设备不是一种选择。
    1. 我不确定为什么 ./app 应用程序在看起来被 mkbundle 嵌入到应用程序中时正在寻找 mscorlib.dll,(可能是错误的版本?)
    1. 使用的单声道版本

    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(默认并发)

    1. 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我得到以下响应

0 投票
1 回答
540 浏览

c# - Linux 上的 Mono:mkbundle 找不到共享库

我有一个小型 C# 应用程序,我想将其转换为本机可执行二进制文件。 csc Foo.cs运行时没有警告,我可以毫无问题地运行应用程序:mono Foo.exe.

但是,当我启动 mkbundle 时,我收到此错误:

我在通过 using/usr/lib/mono/...将其中一个的父目录传递给之后发现了 I18N.dll 的各种版本,这一切都有效。mkbundle-L

但为什么我必须这样做?-L我在网上找到的任何示例中都没有使用该选项。

我是否处于“自定义模式”?如果是这样,什么是自定义模式?我宁愿认为这是缺少环境变量的问题,但我不知道我必须改变什么。

非常感谢!