Click here to Skip to main content
15,867,686 members
Articles / Programming Languages / C# 4.0

Gilma - GUI for the ILMerge Application Revised for .NET 4.0

Rate me:
Please Sign up or sign in to vote.
4.41/5 (15 votes)
13 Feb 2013CPOL1 min read 135K   9K   62   25
An article on a GUI to Microsoft ILMerge Program
Screenshot - Article.gif

Introduction

I saw the beautiful interface made by Tomer Shalev on the SourceForce Web site and thought I could rewrite it in a self-contained way. The original Tomer Shalev's Gilma is a front-end application to ILMerge: Microsoft's command-line utility that can be used to merge multiple .NET assemblies into a single assembly. ILMerge is freely available from Microsoft's Web site.
ILMerge's license does allow commercial usage.
In my implementation, the snapshot of which you can see in the image above, I have referenced the ILMerge executable directly in Visual Studio 2010.

Using the Code

The MSI file contained in the demo installs the application. .NET 4.0 Client profile and the 3.1 Installers are pre-requisites. In the source zip, the entire Visual Studio 201 project is contained.
The only thing to point out is the presence of the possibility to use a strong key in the preferred *.snk format to digitally sign the assembly.

Points of Interest

  • The implementation is fairly trivial. The code is derived from the ILMerging interface help found on the Microsoft Web site.
  • Added support for file names Drag and Drop as suggested.

History

  • Updated to contain the ZeroPeKind option checkbox
  • This is version 3.0 considering   2.0 the one for .net 2.0 and 1.0 the one for .NET 1.1 in the Tomer Shalev SourceForce site (Added Drag and Drop Support for file names)

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Engineer
Italy Italy
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralQuestion about errors Pin
CodeMasterMike24-Feb-09 20:20
CodeMasterMike24-Feb-09 20:20 
Hi!

I was just gonna ask, because it seems I cant merge any DLL's at all.
Ive tried my own and random DLL's located on my computer.
Now, I dont think its any issue with the application since its working for other people.

Error Msg: "Could not load assembly from the location 'c:\......'. Skipping and processing rest of arguments"

I cant find any answer or reason to this error message, more than it doesnt accept the DLL.
But I have tried so many different ones, so it would be strange if all DLL's on my computer is not
acceptable.

So I thought it could be I am going at it all in the wrong way when trying to merge files.
So I was just wondering if there is a simple step-by-step instructions to this application?
I've not found any for ILMerge except how to write the inparameters.

What confuses me, is couple of things...
Does it matter which DLL files I use as Primary Assembly, or do I have to do it in a certain way?
I write in a DLL name as output, does it need to exist, or will it be created automaticly?

What I wanted to do, is to merge 2-3 DLL files into a already created DLL file.
I set a existing DLL file (which I want to have as the only one) or I just put in a new name.
I then put in one of the DLL's in the Primary Assembly, and add the second one to the Other Assemblies.

I dont use strong key, and I have target type as DLL. When clicking the merge button, the error above
comes up. Same issue if I try to merge it into a *.exe file.

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.