Here is Microsoft's pronouncement on backward compatibility
of .NET Framework:
http://msdn2.microsoft.com/en-us/library/aa480198.aspx
--------
"How .NET Framework 3.0 Relates to .NET Framework 2.0 and Earlier"
"The .NET Framework 3.0 adds new technologies to the .NET
Framework 2.0, which makes the .NET Framework 3.0 a superset
of the .NET Framework 2.0. You can think of .NET Framework 3.0
as an "additive" release to the .NET Framework 2.0, as contrasted
with a generational release where software is revised across the
board. (For example, the .NET Framework 2.0 was a generational
release over the .NET Framework 1.0.) Because .NET Framework
3.0 is an additive release and uses the core run-time components from
..NET Framework 2.0, it is completely backward compatible with the
earlier version. Your existing .NET Framework 2.0 based-applications
will continue to run without any modifications and you can safely
continue your investments using the technologies that shipped with
..NET Framework 2.0."
"If you are moving to .NET Framework 3.0 from .NET Framework
1.1 or 1.0, you should perform impact analysis and run compatibility
testing prior to deployment. While we have worked to make .NET
Framework releases compatible, there are a small number of known
incompatibles due to security and significant functionality additions.
For more information, see the page Breaking Changes in .NET
Framework 2.0 on the Microsoft .NET Developer Center Web site."
--------
If your software *specifies* a particular version of the Framework,
it may not accept other (later) versions of the Framework. But that
does not mean that it would not work with other (later) versions if the
config file hadn't specified a particular version.
*TimDaniels*