Friday 31 July 2009

The miracle of monomerge

Looking for a tool to merge a .NET assembly DLL with an associated EXE, I found the Microsoft tool ILMerge. However this has MS Windows dependencies and so cannot be used in my Linux and Mono based build environment. Searching around I found an alternative Mono based tool: Mono.Merge.

Since the Mono.Merge article was written, things have changed and the Mono.Merge Subversion repository can now instead be found at: http://anonsvn.mono-project.com/source/trunk/cecil/merge. So a simple checkout later, and it can be compiled. Note that if just using this part of the repository, the Makefile needs to be modified to remove the reference to the keyfile. Then the DLL and EXE can be merged to produce a single EXE file, note the order of the files in the command matters, the EXE must go first for an EXE to be produced correctly.