.NET Framework

I have several versions of .NET Frameworks installed (1.1, 2.0 SP2, 3.0 SP2, 3.5 SP1 and 4.0). Can I uninstall everything except 4.0 and not run into any problems -- or is each version dependent upon the previous version?

I am pretty sure you can keep the most recent version and remove the others, but many have said this is not the case. Worst case scenario, if you uninstall the older versions and something doesn't work, you can always reinstall.

Having a terabyte drive kinda negates the problems of .NET bloat. Same with the hive.

.NET programs will only work on a given version of the .NET Framework.

If you don't use software written in a .NET language, there's no need to install the .NET Framework.

Installing 3.5 SP1 (~250 MB) will install .NET 2 and 3 and too, however installing .NET 4.0 will not due to technical reasons. .NET 4 comes in two profiles : Client and Extended. Most software only need the Client part (~40 MB)

I wish Microsoft had the newest versions completely backwards compatible so all those previous versions wouldn't be needed. I've got multiple software titles that require most of the versions be installed. I haven't installed anything yet that requires 4.0, although I have the 4.0 Client installed from Microsoft Update.

This is impossible, sadly.

There are two major things in .NET: Libraries and the Common Language Runtime, or CLR.

The CLR is responsible for transforming CIL code (the code in which all .NET language are compiled) into native code.

Libraries contain methods to do things, and are compiled for a specific CLR version.

.NET 3.0, 3.5 and 3.5 SP1 only added libraries - huge updates (WPF made its appearance in .NET 3.0) but they were compiled for version 2 of the CLR, and thus the CLR itself remained unchanged. Which is why installing .NET 3.5 SP1 installs .NET 2, 3 and 3.5 too.

.NET 4 has not only new libraries, but also a new CLR version, which means all software compiled for previous .NET versions will not work on it (the opposite is true, too; a .NET 2 program cannot run on .NET 4). Thus, it does not install previous .NET versions since they are not needed.

A nice touch in .NET 4 is that the "Client Profile" is exactly that - a client profile, containing all basic libraries. If you need more, you just have to install the Extended Profile. In .NET 3.5 SP1, the Client Profile was a huge mess - you couldn't install anything on top of it to get the full .NET framework, which made it useless.

"Installing 3.5 SP1 (~250 MB) will install .NET 2 and 3 and too, however installing .NET 4.0 will not due to technical reasons. .NET 4 comes in two profiles : Client and Extended. Most software only need the Client part (~40 MB)"

Guess I'm not totally following this. So, does this mean that if you have .NET 4 installed, .NET 1-3 can be uninstalled?

No he's saying if you do not have any installed, the installer from 3.5SP1 will install 1,2,3,3.5, etc, but the 4.0 installer will not.

Hmmm from reading Aethec's second post it would appear that you cannot use .net 4 to run applications built with .net 1.1, 2, 3, 3.5. However, according to Microsoft, .net framework 4 is backwards compatible although the compatibility will vary depending on how the application was coded. You might also be interested to know that there is a .net 3.5 client profile if hard drive space is a factor.

So if you really don't want the previous versions of .net framework uninstall them and just see how everything goes. Like Winapp2.ini said you can always re-install them or you restore from a recent image if you have one.

MSDN: http://msdn.microsof...y/ff602939.aspx

Wiki: https://en.wikipedia...T_Framework_3.5

Here's a tool for uninstalling/cleaning all .NET Framework versions properly (especially if having problems): http://blogs.msdn.com/b/astebner/archive/2008/08/28/8904493.aspx

Used it at work and it's great. You could use that and then just reinstall the latest (v4) and see if everything works. I might try it myself, too.