I am developing a C# desktop application using Winforms. I created an installation strategy using visual studios click once installation tool. Luckily it provides clients to detect, download and setup the related prerequisite components.
My question is I started to develop this app with .NET 4.0 and then upgraded it to .NET 4.5 now on the prerequisites list both 4.5 and 4 is checked. i am wondering if i uncheck the .NET 4.0 component would it be alright?
does .NET 4.5 include .NET 4.0?
You can compile an application for .NET 4.5 and run it on the 4.0 runtime – that is until you hit a new feature that doesn’t exist on 4.0. At which point the app bombs at runtime. Say you write some code that is mostly .NET 4.0, but only has a few of the new features of .NET 4.5 - .NET will happily start your application and run everything 4.0 fine, until it hits that 4.5 code – and then crash unceremoniously at runtime.
So, no .NET 4.5 doesnt include .NET 4.0.
I think there is no need for 4.0 if you target 4.5
See Installing the .NET Framework 4.5
When .NET 4.5 is installed it effectively replaces .NET 4.0 on the machine. .NET 4.0 gets overwritten by a new version of .NET 4.5 which - according to Microsoft - is supposed to be 100% backwards compatible.
Read these very good articles on the same:
.NET 4.5 is an in-place replacement for .NET 4.0
.NET Versioning and Multi-Targeting - .NET 4.5 is an in-place upgrade to .NET 4.0
Answer to the question is here: http://msdn.microsoft.com/en-us/library/5a4x27ek.aspx
Precisely:
So, no .NET 4.5 doesnt include .NET 4.0. You still have a chance that some assemblies may be missed
It doesn't include it per se(as some portions are overwritten), however if you target 4.0 then it should work with 4.5, but NOT vice versa.