Ken Blake said:
Well, I don't claim to be an expert on .net, but my understanding of this
has always been just the opposite. And again, returning to the quotation
above, it says "any older apps" (presumably what's meant is .net 1.1 apps)
"will still run against the 1.1 version" (and presumably that means "and
*not* against the 2.0 version").
They will run against 1.1 *if it is present*. Here's the sentence in
full:
<quote>
For example, on a machine running Windows Vista=3F with versions 1.1 and
2.0 of the .NET Framework installed, apps built against the .NET
Framework 2.0 will run against the 2.0 version, while any older apps
will still run against the 1.1 version.
</quote>
Note the "with versions 1.1 and 2.0 of the .NET framework installed"
part. In other words, that sentence doesn't say anything about what
happens when 1.1 isn't installed.
I apologise again for my mistake in what happens when two versions
*are* installed.
So the way I read that the sentence is that you can *not* run a 1.1
application on a machine with only 2.0 installed. And that meshes with what
I had long thought was the case.
No, it's not the case.
Here are another couple of pages:
http://msdn2.microsoft.com/en-us/library/47a587hk(VS.80).aspx
<quote>
The .NET Framework provides a high degree of support for backward
compatibility. For example, most applications created using version 1.0
will run on version 1.1 and applications using version 1.1 will run on
version 2.0.
</quote>
and
http://msdn2.microsoft.com/en-us/library/9w519wzk(VS.80).aspx
<quote>
If the version of the .NET Framework that the application was built
against is not present and a configuration file does not specify a
version in a <supportedRuntime> Element, the application runs on the
latest version of the .NET Framework that is present on the computer.
</quote>
So basically, in the case where a 1.1 application doesn't have a
configuration file, it will use 2.0 on a machine which has 2.0 but not
1.1 installed.