Microsoft все таки удовлетворила просьбу Joel Spolsky и предоставила пусть и не линкер, но средство которое соберет все сборки в один файл. Меня просто достало что при любом использовании COM из .Net генерируется отдельная dll. Зачем?
ILMerge позволит скомпоновать эту dll в Ваш выполняемый файл.
Сам ILMerge плюс Gilma тем кому лень разбираться с командной строкой.
Правда я попробовал собрать NAnt в один файл и результата не дождался.