We made some pretty major architectural changes with VS 2010
to enable much better and more accurate multi-targeting support.
VS 2010 now ships what we call “reference assemblies” for
each version of .NET. A “reference assembly” contains only the metadata
of a particular framework assembly – and not its actual implementation (making
it much smaller in size on disk). This metadata is enough, though, to ensure
that VS 2010 can always provide 100% accurate intellisense when targeting a
particular version of the .NET framework. It also means that properties exposed
through the property grid within designers, API listings within the Object
Browser, and all the other various places within the IDE accurately reflect the
exact API version signature.
We also updated the VS 2010 debugger, profiler and compilers
to be able to target multiple versions of the CLR.