Trying to embed a DLL to make a single file was a bit tricky as the ILMERGE I was finding led to a outdated version on CodePlex which had a nice front end interface however the drop down only listed up to the .NET Framework 2.0/2.5.

ILMERGE Download Page – Microsoft
Version: 2.11.1103
Date Published: 11/4/2011

This is the latest and greatest that I know of, and while looking for a quick example on how to run it, there was none. Not fun considering this is the syntax:

Usage: ilmerge [/lib:directory]* [/log[:filename]] [/keyfile:filename [/delaysig
n]] [/internalize[:filename]] [/t[arget]:(library|exe|winexe)] [/closed] [/ndebu
g] [/ver:version] [/copyattrs [/allowMultiple] [/keepFirst]] [/xmldocs] [/attr:f
ilename] [/targetplatform:<version>[,<platformdir>] | /v1 | /v1.1 | /v2 | /v4] [
/useFullPublicKeyForReferences] [/wildcards] [/zeroPeKind] [/allowDup:type]* [/u
nion] [/align:n] /out:filename <primary assembly> [<other assemblies>…]

In simplest terms, this worked for me and for most people it will do:

ILMerge.exe /out:"I:\CombinedSetup.exe" "I:\Setup.exe" "I:\Interop.IWshRuntimeLibrary.dll"

For people working with complex projects, I strongly recommend reading the ReadMe as not everything can be merged, and those other parameters are there for a reason.

No Comments

There are no comments related to this article.