.NET does in fact support the moral equivalent of a static
library. It's called a netmodule (file extension is usually
.netmodule). Read more about it in this blog post.
Beware that it isn't well supported by the Visual Studio
build tool chain. I think extension methods are a
problem as well. ILMerge is the better tool to get this
done.