Graphical interface to the Microsoft ILMerge utility. Makes it merging multiple .NET assemblies easy and hassle-free.
ILMerge-GUI Settings
Assemblies to merge
Sets the input assemblies to merge.
Copy Attributes
When this is set before calling Merge, then the assembly level attributes of each input assembly are copied over into the target assembly.
Any duplicate attribute overwrites a previously copied attribute. If you want to allow duplicates (for those attributes whose type specifies “AllowMultiple” in their definition), then you can also set the AllowMultipleAssemblyLevelAttributes.
The input assemblies are processed in the order they are specified. This option is mutually exclusive with specifying an attribute assembly, i.e., the property AttributeFile.
When an attribute assembly is specified, then no assembly-level attributes are copied over from the input assemblies
Command line option: /copyattrs
Union Duplicates
When this is true, then types with the same name are all merged into a single type in the target assembly. The single type is the union of all of the individual
types in the input assemblies: it contains all of the members from each of the corresponding types in the input assemblies. It cannot be specified at the same time as /allowDup.
Command line option: /union
Default: false
Internalize
This controls whether types in assemblies other than the primary assembly have their visibility modified. When it is true, then all non-exempt types that are visible outside of their assembly
have their visibility modified so that they are not visible from outside of the merged assembly. A type is exempt if its full name matches a line from the ExcludeFile using the .NET regular expression engine.
Command line option: /internalize[:excludeFile]
Default: false
Sign with key file
When this is set before calling Merge, it specifies the path and filename to a .snk file. The target assembly will be signed with its contents and will
then have a strong name. It can be used with the DelaySign property to have the target assembly delay signed.
This can be done even if the primary assembly was fully signed.
Command line option: /keyfile:filename
Default: null
Delayed sign
When this is set before calling Merge, then the target assembly will be delay signed. This can be set only in conjunction with the /keyfile option.
Command line option: /delaysign
Default: null
Merge XML Documentation
This property controls whether XML documentation files are merged to produce an XML documentation file for the target assembly.
Command line option: /xmldocs
Default: false
Generate log file
When this is set before calling Merge, it indicates the path and filename that log messages are written to. If LogMessages is true, but LogFile is null, then log messages are written to Console.Out.
Command line option: /log[:logfile]
Default: null
Generate command line file
Writes the command line to a file for the merge session.
Output
This must be set before calling Merge. It specifies the path and filename that the target assembly will be written to.
Command line option: /out:filename
Default: null
Debug
When this is set to true, ILMerge creates a .pdb file for the output assembly and merges into it any .pdb files found for input assemblies.
If you do not want a .pdb file created for the output assembly, either set this property to false or else specify the /ndebug option at the command line.
Command line option: /ndebug
Default: true
Framework
This method sets the .NET Framework for the target assembly to be the one specified by platform. Valid strings for the first argument are "v1", "v1.1", "v2", and "v4".
The "v" is case insensitive and is also optional. This way ILMerge can be used to "cross-compile", i.e., it can run in one version of the framework and generate
the target assembly so it will run under a different assembly. The second argument is the directory in which mscorlib.dll is to be found.
Command line option: /targetplatform:version,platformdirectory
Default: null





