我正在尝试创建用于部署使用mono 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机器上运行。
答案 0 :(得分:0)
如果您不使用--static,目标计算机将需要安装Mono框架。
没有办法解决这个问题。
答案 1 :(得分:0)
如果您不想使用--static,则需要使用MyApp二进制文件发送libmonoboehm-2.0.1.dylib。
然后,您需要使用install_name_tool更改MyApp二进制文件,以从正确的位置加载libmonoboehm-2.0.1.dylib。
假设您要发送应用程序包:
使用下面粘贴的命令确保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