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?
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
I think there is no need for 4.0 if you target 4.5
See Installing the .NET Framework 4.5
The .NET Framework 4.5 replaces the .NET Framework 4. When you install the .NET Framework 4.5 on a system that has the .NET Framework 4 installed, the assemblies are replaced.*
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.
Answer to the question is here: http://msdn.microsoft.com/en-us/library/5a4x27ek.aspx
Precisely:
•The .NET Framework 4.5 replaces the .NET Framework 4. When you install the .NET Framework 4.5 on a system that has the .NET Framework 4 installed, the assemblies are replaced.
So, no .NET 4.5 doesnt include .NET 4.0. You still have a chance that some assemblies may be missed
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.
来源:https://stackoverflow.com/questions/15113873/does-net-4-5-include-net-4-0