Visual Studio and Cross-targeting

Today I was checking the VB Team Blog and I've found this post by John Rivard that explains one of the problem that a developer has when changing the environment: we would like to work with the old verison of the .NET Framework with the new environment but this is impossible, Visual Studio targets only one version of the Framework!

John explains that this is a problem that comes from the CLR nature itself and avoid this "limitation" will not be so easy:

  1. The Visual Studio process can only load one version of the CLR. This is a limitation imposed by the CLR itself – one per process, thank you very much.
  2. The CLR “shim” determines the version of certain unmanaged utilities used by compilers, linkers, and parts of the build system. These include the metadata reader-writer utilities, the assembly linker utility, and strong-naming utilities.
  3. The CLR’s Unification Policy determines the single version of the .NET Framework that can be loaded into the process.
  4. Unification Policy influences the version of designers and code generators that Visual Studio can load and thus the Framework version that these tools target. For example, when you reference a COM type library from the project system, the type library converter emits an interop assembly built for the current CLR version.
  5. Unification Policy also limits the set of classes that designers themselves can load and design against. For example, a Visual Studio 8.0 process can only load a 2.0 Form. The designer cannot load and design for a 1.1 Form.

However I can't agree with some feedbacks I've read on VB Team blog, where seems that something on the cross-targeting field is not necessary.

On my work PC I've installed VS2003 and VS2005 together because every day I need to manage .NET 1.1 and .NET 2.0 projects. I see also every day developers that have a working machine with VS2002 (.NET 1.0), VS2003 and VS2005 installed together. Do you agree with me that this situation is a noise?

I think that will be wonderful if tomorrow I could open my new Visual Studio 2005, choose New Project and the Project Wizard will show me a first choice: "On your system you've installed .NET 1.1 and .NET 2.0. Which platform do you want to use?". The choice on this step will target the final .NET platform to use (the CLR version that must be loaded) and I could start building a project for .NET 1.1 and .NET 2.0 with the same environment. On our machines we'll have only the last Visual Studio version installed.

Choosing the CLR to load at runtime is really so impossible?

Print | posted on Wednesday, November 30, 2005 5:16 PM

Comments on this post

No comments posted yet.

Your comment:

 (will show your gravatar)
 
Please add 8 and 5 and type the answer here: