Integrate ilMerge into .NET exe projects
Microsoft has a tool called ilMerge (http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx). This can merge several assemblies into only one exe file.
A referenced assembly in a DevStudio project should have the additional property "Linking" with the possible values "Dynamic", which has the same behaviour as currently, and "Static" which uses the ilMerge technology to integrate the referenced assembly into the resulting exe file.
With this possibility it is really easy to develop simple (trivial) tools which depent on standard libraries that can easily be deployd.
mark kang commented
Shawn Anderson commented
This would be a huge feature and very helpful.
Jesse Houwing commented
I agree with Jeff, ILmerge breaks all kinds of Reflection and resource lookups if you're not careful. So it wouldn't work on a lot of solutions out of the box. being able to create an Assembly of Assemblies would be even better. I'd prefer to deploy those as any other dll or exe though.
Jörg B. commented
Any type of project would be good, not only .exe ones - e.g. I am currently writing custom controls for TFS & they reference other assemblies, however, I'd like to deploy one single control .dll only.
Phillip Hutchings commented
I'll leave the details to the implementers, but something like this would be a huge benefit for those projects that don't warrant a full deployment effort.
Jeff Dege commented
Actually, what .NET needs is an equivalent of JAR files.
We need deployable single-file executables that can contain referenced assemblies. ILMerge breaks assemblies apart and merges their contents into a single assembly, which isn't quite the same thing.
What we need that JAR files give us is the ability to include referenced assemblies in a single executable file as separate assemblies.