For maximum compatibility for applications, it would make sense to target the oldest version of .NET I can. I know where major features (such as LINQ being v3.5 onwards) were introduced, but there are lots of small changes I have no idea about.
The only way I have found of checking what version I can target is by selecting the oldest one, reloading the project, building, then trying a newer version if it fails. Is there a way I can 'scan' the source code for a project and get the lowest compatible .NET version back?