Windows contains a version of .NET by default. Here's a listing of them.
XP
- .NET v1.0 -- Service pack 1
- .NET v2.0 -- Service packs 2 & 3
Vista
- .NET v3.0 -- All service packs
Windows 7
- .NET v3.5 -- All versions and service packs
Windows 8
- .NET v4.0 + Metro UI available.
Windows 8.1
- .Net v4.5 + Metro UI available.
Windows 10
- .Net v4.6 + Metro UI + Universal Apps available.
Note:
All contains .NET v4.6 if Windows Update is enabled. (Not for all versions of windows)
Options of deployment:
There are several options of deployment.
Checking for .NET in installation. (Install systems like NSIS support this).
See this for more info.
If you want to deploy portable app, notify users to install the required .NET version. (easier)
Target .NET 2.0 and all users are able to run your app since I think nobody is using XP SP1. (easiest. I use this to deploy mine.)
EDIT
There needs some clarity with some other answers, so I'm quoting this Wikipedia note.
.NET Framework 1.0 is integral OS component of Windows XP Media Center edition or Tablet PC edition. Installation CDs for the Home editions and the Professional editions of Windows XP SP1, SP2 or SP3 comes with .NET Framework installation packages.