The Microsoft .NET framework version 3 is not a new version of the framework... just a bunch of additions to version 2.0, so why did they decide to call it version 3? To make matters worse, it breaks the CLR installation detection in FinalBuilder 4. FinalBuilder scans the registry and the [SysDrive]:\WINDOWS\Microsoft.NET\Framework folder to detect which versions of the CLR are installed, so that it can allow the user to choose which version to host. So we installed .NET v3 RC1 this week, and discovered FinalBuilder will not load it.
We checked our detection code, it was correctly identifying the installation folder for the framework, and passing the correct framework version to CorBindToRuntimeEx (the CLR Hosting entry point). CorBindToRuntimeEx however is putting up an error saying the version of the framework we are requesting is not available. That's obvious, version 3 is not really a new version of the framework... so why then did microsoft call it version 3? Beats me, sounds very much like a misguided management decision.
So in our .NET framework code, we now have to ignore version 3... an update to FinalBuilder 4 will be out soon with a fix to our framework detection code.