Important Notes

ILMerge

"IL Merge" is a tool developed by Microsoft Research, and "IL Merger Tool" is a GUI for "IL Merge".
There is no direct relation between the author of this project and Microsoft or Microsoft Research.
For more information about "IL Merge", please click here.

Normal and Logo Version

This tool is published in two versions, the normal or open source and the logo version.
These versions are the same, except that the logo version is the package what was tested by the Windows 7 Logo Toolkit. This version is digitally signed by the authenticode of my company (eTech-Studio) and contains no source code. The normal or open source version contains the source and the installer for the project, but without the digital signature.

I recommend the normal version for people who like to learn from the code, or reuse it, and I recommend the logo version for people who like to use the tool.

IL Merger Tool - Quick Start Guide

Basics

IL Merger Tool enables you to merge different .NET assemblies into one assembly using a simple user interface or from a post-build action in Visual Studio.
Features:
  • Merge DLLs and EXEs into one assembly.
  • Export/Import merge configuration.
  • Sign the output assembly with Strong Name.
  • Generate log file, debug information and xml documentation for the output assembly.
  • Almost all advanced options of "ILMerge".

The following sections will describe how to use the tool to merge assemblies and how to create a post-build action for Visual Studio.

How To: Merge different assemblies into one.

1. Download and install the tool to your computer.

For using the tool I recommend the logo version.
setup.png

2. Start IL Merger Tool.

screenshot1.png

3. Choose the assemblies (dlls and exes) to merge by clicking the "Add assemblies" button.

You can choose more than one assembly at the same time with the dialog.
choose1.png

4. Select the primary assembly, by clicking on the name of that in the list of added assemblies.

The primary assembly's type will be the type of the output assembly. For example if the primary assembly is an exe the output assembly will be an exe too.
primary.png

5. Choose name for the output assembly at the bottom by clicking the "Browse" button, next to the "Output assembly" text on the right.

The name of the output assembly should be the same as the name of the primary assembly.
output.png

6. Choose the target platform from the "Target Platform" drop down box.

platform.png

[optional] Create debug information, by checking the "Include debug information in output" checkbox.

debug.png

[optional] Choose the strong name key to sign the assembly with b clicking on the "Choose" button next to the "Sign with key file" checkbox on the right.

If you don't need a signed assembly, then uncheck the "Sign with key file" checkbox.
sign.png

[optional] Generate log file

  • 1. Check the "Generate log file" checkbox.
  • 2. Click the "Browse" button on the right and choose the path for the log file.
log.png

[optional] Set the advanced properties.

For more information about the advanced propertes refer to the "ILMerge" documentation.
advanced.png

7. Click the "Begin Merge" button!

After the merge completed the ready to use merged assembly will be in the output directory.

How To: Make a post-build action for Visual Studio.

1. Complete the "How To: Merge different assemblies into one.".

If the merge was successfull, you can continue with this how to.

2. Click "Export" button in the top right corner of the window.

An export dialog will appear where you have to choose an export location.
If you would like to your project be movable you must:
  • Check the "Use relative pathes" checkbox.
  • Select an export location inside your project/solution folder.
export.png

4. Open the primary assemblies project in Visual Studio.

You can use any .NET Project and and any version of Visual Studio which supports .NET projects (2003, 2008, 2010).

5. Open project properties and go to the "Build Events" tab.

6. Enter the following command into the "Post-build event command line":

<PATH> /cfg $(ProjectDir)<NAME>.merge
  • PATH: The path to the ILMerger.exe. (For example: C:/Program Files/eTech-Studio/IL Merger Tool/ILMerger.exe)
  • NAME: Name of the exported merge configuration file (For example: ProjectMergeFile)
Example Command:
C:/Program Files/eTech-Studio/IL Merger Tool/ILMerger.exe /cfg $(ProjectDir)ProjectMergeFile.merge

7. Save and build your project.

Now check the output window of Visual Studio, if there were no errors, then you are ready!

IL Merger Tool - Development Information

The tool is written in C# 4.0 using Windows Presentation Foundation (WPF).

Please help to make IL Merger Tool better!

I hope you enjoyed the documentation!
If you would like to support the development of this tool please donate!

Donate at PayPal!

Last edited Aug 10, 2010 at 2:19 PM by juhos, version 32

Comments

No comments yet.