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
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.