0

I am trying to create package for deployment of .Net Application that compiled using mono 3.10.0 and mkbundle

The mkbundle command line:

mkbundle --deps -o $V_OUTPUT_FILE_NAME $V_Target_FILES

Package is created, but when i run it on machine without mono framework (Maverick OS), i get following error.

  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

From mkbundle documentation i understand that --deps parameter should link all required libraries into my bundle, and i don't want to use --static flag because of licensing issue.

I what to be able to deploy my application om OSX machines without need to install the mono framework.

What files do i need to include into my installation in order for it to work on OSX machine without mono framework installed on it.

Liran Haim
  • 81
  • 1
  • 1
  • 5

2 Answers2

0

If you don't use --static, the target machine will need to have the Mono framework installed.

There is no way around this.

Rolf Bjarne Kvinge
  • 19,253
  • 2
  • 42
  • 86
0

If you don't want to use --static, you need to ship libmonoboehm-2.0.1.dylib with the MyApp binary.

You will then need to alter the MyApp binary with install_name_tool to load libmonoboehm-2.0.1.dylib from the correct location.

Assuming you're shipping an application bundle:

  1. libmonoboehm-2.0.1.dylib and the MyApp binary go in the Contents/MacOS folder
  2. Use the command pasted below to make sure that MyApp loads mono from the correct location.

    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

Andrew Rondeau
  • 667
  • 7
  • 18