Gene said:
It is my understanding that a program that requires .NET x.y will not
run with .NET p.q, when p != x or q != y.
The numbers correspond to layers.
http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/DotNet.svg/433px-DotNet.svg.png
But Microsoft likes to screw around with the delivery,
and there can be more than one way to install .NET libraries.
For example, there are "lightweight" installers, which
require a smaller download. And apparently, if you run
Windows Update, then Windows Update may have an update
that pulls down the full install (defeating the purpose
of the lightweight one).
So while the layer cake model is a "fun concept",
the practical details say "Microsoft couldn't do
release control if their life depended on it.
I've found a couple *installers* for programs, that
insisted that .NET 4.0 be present. And then .NET 4.0
demands that you install Win7 SP1 (if you haven't already
installed SP1). And then there are claims that .NET 4.0
can take the place of some of the others .NET numbers.
But who knows what the relationship is in {p,q,x,y} space ?
Maybe if Einstein is out there tonight, he can post
back with a blackboard full of math.
In theory, a program asks for a particular CLR (common
language runtime) version. Like a .NET 2 program, would be
looking for 2.0.50727. But what I don't know, is if a package
like .NET 4, will answer for several versions, or just answer
when 4.0.30319 is called for.
Paul