I would like to avoid redistributing .NET runtime if possible with my application since it will increase the size of the application, download time, development time & will possibly introduce many different deployment errors. Does Microsoft force users to update .NET runtime via Windows update? If not, what are some of the options to redistributing .NET runtime? Has Microsoft made it any easier to re-dstribute runtime with .NET appliactions? Also, is .NET runtime gauranteed to be backward compatible?
I am just summarizing the answers here. Looks like we have to have a bootstrapper to at the least check for the existence of the .NET run time. The alternative option is to package the runtime and deploy it if it does not exist. There are multiple options for packaging & Visual stduio does provide an option to build installer project with the runtime. There are also other packaging options like InnoSetup, WIX etc (not sure which option is better and free). Runtime installation requires a reboot and the chosen installation option should resume application installation post reboot.