+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 10 of 13

Thread: Mkbundle: bundle Mono with applications

  1. #1
    Guru ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski's Avatar
    Join Date
    Mar 2009
    Posts
    1,379

    Cool Mkbundle: bundle Mono with applications

    Mkbundle: bundle Mono with your applications

    Did you ever wonder why you need .NET Framework or Mono installed to run your program? Well, it would be much more handy if you could distribute your applications without nagging your clients to install additional frameworks, is it not? So here we are. Lets bundle a .NET-based application with Mono, so you don't need Mono, or .NET installed to run it.

    Prepare an environment

    First you need to install newest Mono and Cygwin. Installing Mono is very straightforward so you cannot screw up anything. When you start installing Cygwin, go into Full view, then please include 4 additional packages. These are: gcc, mingw, mingw-zlib and zlib.

    Now you need a command prompt. Both Mono and Cygwin create shortcuts for command prompts on your desktop, but you need to combine them into one. Here is a batch that does it for me. You may need to change it, if you have other Mono version for example.

    Code:
    echo Mono version 2.4 Build 6
    echo Prepending 'C:\PROGRA~1\Mono-2.4\bin' to PATH
    PATH=C:\PROGRA~1\Mono-2.4\bin;%PATH%
    
    chdir C:\cygwin\bin
    bash --login -i
    Bundle an application with Mono

    So we are now in a command prompt, running this Cygwin mode. Notice that this is not a DOS prompt anymore, and "dir" won't work anymore. To list files use linux command "ls". The folder you are browsing now is like the one below. Arek is a username.
    Code:
    C:\cygwin\home\Arek
    Browse to this folder with your explorer. Now you copy 2 files into this folder. 1st is your application exe and 2nd is the file Mono.dll (2MB) that you can find in your Mono folder.
    Code:
    C:\Program Files\Mono-2.4\bin
    For some reason the whole procedure does not work with long file names, so rename your application exe. It should comply with this old DOS 8.3 naming.

    Lets go back to command prompt. You need only 1 command to bundle your application, and here is some explanation.

    mkbundle is a program within Mono package | -o Bundled1.exe specifies how the Mono-bundled exe will be named | Winform1.exe says what will be included, Mono libraries will be included anyway | --deps is necessary although I am not sure what it does | -z will compress the output exe a lot

    Code:
    mkbundle -o Bundled1.exe Winform1.exe --deps -z
    So now you got your Bundled1.exe, which contains your own app along with Mono itself. You should not need Mono nor .NET to run it. Notice that it will be 4MB or more in size. Those bundled exes are not lightweight.

    Thank the author for his work

    If you enjoyed reading my tutorial, please +rep me. You can also send me a cookie.

  2. #2
    Super Moderator WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther's Avatar
    Join Date
    Jul 2006
    Age
    37
    Posts
    13,155
    Blog Entries
    59

    Re: Mkbundle: bundle Mono with applications

    Very cool!

    Out of curiosity, does this process create an .exe that can run in Windows, or only in Cygwin? Is there a version of Mkbundle that runs under Windows?
    CodeCall Blog | CodeCall Wiki
    Programming is a branch of mathematics.
    My CodeCall Blog | My Personal Blog

  3. #3
    Administrator Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan's Avatar
    Join Date
    Nov 2005
    Location
    Hendersonville, NC
    Posts
    24,750
    Blog Entries
    97

    Re: Mkbundle: bundle Mono with applications

    This was a much needed tutorial! Being able to bundle the libraries you need so the user doesn't have to install any third party software is always great. I'm guessing that if it works with Mono on Windows it will work flawlessly with Mono on Linux?

    +rep
    Last edited by Jordan; 06-19-2009 at 05:14 AM.

  4. #4
    Guru ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski's Avatar
    Join Date
    Mar 2009
    Posts
    1,379

    Re: Mkbundle: bundle Mono with applications

    The Mono-bundled executable runs (presumably) without Cygwin, without Mono, and without .NET Framework. I do not have another system to confirm it, but I assume it works without those without any problems. Note that some components may not be bundleble, possibly Managed DirectX or GTK#.

    (Jordan) I do not have any linux, but it would be a logical assumption. Notice that Cygwin is a Windows port, so any linux could have gcc and zlib already installed.

  5. #5
    Administrator Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan's Avatar
    Join Date
    Nov 2005
    Location
    Hendersonville, NC
    Posts
    24,750
    Blog Entries
    97

    Re: Mkbundle: bundle Mono with applications

    Will you send me a test bundle via email so that I can try it on Linux?

  6. #6
    Guru ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski's Avatar
    Join Date
    Mar 2009
    Posts
    1,379

    Re: Mkbundle: bundle Mono with applications

    Here is some Mono-bundled application, with simple WinForms gui. Inside you can find the source code, a build, and a Mono-bundled build. Everyone feel free to give it a try.
    Mono-bundled test application.zip

    For some reason I cannot upload the zip into this thread. I get a database error.

  7. #7
    Administrator Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan is a name known to all Jordan's Avatar
    Join Date
    Nov 2005
    Location
    Hendersonville, NC
    Posts
    24,750
    Blog Entries
    97

    Re: Mkbundle: bundle Mono with applications

    Thanks, I'll give it a try. You can't upload it because it is so big.

    Your organization's Internet use policy restricts access to this web page at this time.


    Reason:

    The Websense category "Games" is filtered.


    URL:

    Real Family Guy Fans: Which Family Guy Character Are You? - Family Guy Quiz _campaign=CT3K&utm_source=mediafire
    I'll have to download at home.

  8. #8
    Programming Professional Siten0308 will become famous soon enough Siten0308's Avatar
    Join Date
    Jun 2008
    Location
    California, USA
    Posts
    302

    Talking Re: Mkbundle: bundle Mono with applications

    awesome, got to try this out, thanks Arek
    +rep

  9. #9
    Code Warrior marwex89 is a glorious beacon of light marwex89 is a glorious beacon of light marwex89 is a glorious beacon of light marwex89 is a glorious beacon of light marwex89 is a glorious beacon of light marwex89 is a glorious beacon of light marwex89's Avatar
    Join Date
    Jul 2008
    Location
    Somewhere that is shorter to write than "In the gloomy shadows of my personal namespace"
    Posts
    10,741
    Blog Entries
    2

    Re: Mkbundle: bundle Mono with applications

    Very interesting, man +rep
    Hey! Check out my new Toyota keyboaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

  10. #10
    Guru ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski is just really nice ArekBulski's Avatar
    Join Date
    Mar 2009
    Posts
    1,379

    Re: Mkbundle: bundle Mono with applications

    Thank you all for the rep. I very much appreciate it!

+ Reply to Thread
Page 1 of 2
1 2 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Similar Threads

  1. Hacking Applications With Memory Editors
    By TcM in forum Security Tutorials
    Replies: 10
    Last Post: 01-05-2010, 06:32 PM
  2. Tried to use Mono... and failed.
    By ArekBulski in forum C# Programming
    Replies: 3
    Last Post: 04-02-2009, 03:08 AM
  3. Installing MONO on CentOS
    By phpforfun in forum Linux Installation & Configuration
    Replies: 2
    Last Post: 07-22-2008, 04:49 AM
  4. Replies: 0
    Last Post: 08-22-2007, 11:37 AM