Monday, April 18, 2005

Microsoft Releases a Linker for .NET

It is about time. Over a year ago, Joel Spolsky of Joel on Software requested that Microsoft provide a linker for .NET. Well, one year and just over three months later, Microsoft responded with ILMerge. From Microsoft's description:

ILMerge is a utility for merging multiple .NET assemblies into a single .NET assembly. It works on executables and dlls alike. It comes with several options for controlling the processing and format of the output, see the accompanying documentation for details.

In Joel's request for a linker he defined a linker for us:

It combines the compiled version of your program with the compiled versions of all the library functions that your program uses. Then, it removes any library functions that your program does not use. Finally, it produces a single executable binary program which people can run on their computers.

So ILMerge isn't quite a linker since it is not able to remove the unused library functions from the final assembly. Which means your finished assembly will be unduly bloated, much like the operating system it runs on.

My thanks to Chris for the tip.

No comments: