3.0 is bigger than 2.0, except when it’s not


Microsoft has a lot of products. A lot. So, it’s not surprising that occasionally they name things in a way that causes a bit of confusion. Here’s an example that’s bitten me lately.

Microsoft has a product called the .NET Framework. This product, which is used by application developers and needs to be installed on a computer in order to run those developers’ applications, is actually a family of products. There have been 5 major releases:

  • .NET Framework 1.0
  • .NET Framework 1.1
  • .NET Framework 2.0
  • .NET Framework 3.0
  • .NET Framework 3.5

This list looks to be very simple, but it’s a bit deceiving. Version 3.0 and 3.5 are actually separate products from 1.0, 1.1, and 2.0. They’ve just confusingly been given the same name. Versions 3.0 and 3.5 include 2.0 as part of their install, so it shouldn’t really be a problem… Except in at least one case.

When Microsoft released version 3.5 they released 2.0 Service Pack 1. Among other things, the service pack allowed applications written to only support version 2.0 to use some of the new features in 3.5 (with a bit of tweaking.) It gave developers a way to get some 3.5 goodness without requiring that all of their customers install the just released 3.5.

Admin Arsenal is one such product; it requires .NET Framework 2.0 SP 1 or later. This has led to some confusion with users who have only version 3.0 installed, which is anyone with a default installation of Windows Vista. It sounds like having .NET 3.0 would indeed be “or later” than 2.0 SP 1, but it isn’t. The fix is to install .NET 2.0 with SP 1, which sounds like it’s going backwards, but it’s actually more like going sideways with slightly forward curve.

Keep this in mind if you have .NET applications that don’t seem to behave correctly on .NET 3.0. Not all installers verify which Service Pack for .NET is installed, and some .NET applications (mainly in-house ones) will have no installer at all.