0

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

mkbundle 命令行:

mkbundle --deps -o $V_OUTPUT_FILE_NAME $V_Target_FILES

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

  dyld: Library not loaded: /Library/Frameworks/Mono.framework/Versions/3.10.0/lib/libmonoboehm-2.0.1.dylib
  Referenced from: /Applications/MyApp.app/Contents/Resources/./MyApp.exe
  Reason: image not found
  Trace/BPT trap: 5

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

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

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

4

2 回答 2

0

如果不使用 --static,则目标机器需要安装 Mono 框架。

没有办法解决这个问题。

于 2014-10-20T08:28:14.807 回答
0

如果您不想使用 --static,则需要将 libmonoboehm-2.0.1.dylib 与 MyApp 二进制文件一起提供。

然后,您需要使用 install_name_tool 更改 MyApp 二进制文件,以从正确的位置加载 libmonoboehm-2.0.1.dylib。

假设您要发送一个应用程序包:

  1. libmonoboehm-2.0.1.dylib 和 MyApp 二进制文件位于 Contents/MacOS 文件夹中
  2. 使用下面粘贴的命令确保 MyApp 从正确的位置加载单声道。

    install_name_tool -change /Library/Frameworks/Mono.framework/Versions/3.10.0/lib/libmonoboehm-2.0.1.dylib @executable_path/libmonosgen-2.0.1.dylib MyApp

于 2016-03-09T22:04:37.877 回答