Multiple .NET Framework versions

For the client I’m currently at, I was looking for some Microsoft documents on what they say about running multiple versions next to each other and what version will be loaded. A lot of this information seems very logical and is something you just presume, but to me was never proven by real documents. And clients still like real documents over my word. I have to work on that! 🙂

One thing that may seem very obvious, but I saw being asked for over and over again, is : can you create .NET 1.1 applications in Visual Studio 2005?

NO, you cannot develop .NET 1.1 applications in Visual Studio 2005!!!

I’ll keep away from discussions like if it should be able to do so. As well as about the fact that you probably would be able, after you’d convert everything back to a .NET 1.1 standard (on projects and files, etc) with some home-brew tool or something. Forget it. I won’t.

Other things that could be interesting.

  • You can install all versions of the .NET Framework without any problems.
    You can install them in random order, whatever you want. And I’m speaking from experience here! 🙂
  • You can run .NET 1.0 and .NET 1.1 applications with only .NET 2.0 installed.
    There’s a sidenote, things actually have changed since version 1.0. Change is, something that used to work, is broken in the latest version.
    For more information, check out the breaking changes at msdn.
  • When not specified, your applications will run in the first version available.
    i.e. when you build for 1.1 and both 1.1 and 2.0 are available, it will run in 1.1.
    You can read about that here in .NET Framework 1.1 and 2.0 (Beta) Compatibility.
    If you want to know how to specify your version, go read about required runtime and/or supported runtime at msdn.
  • You cannot run a library in version 1.1 and have the consuming app run 2.0.
    Your application runs in one process and cannot load the CLR twice in one process. You have my word for it.
    Indeed, no real document, simply because I could not find it. Is this so logical to Microsoft they didn’t think of writing it down?
    I did found a statement by Gary Chang from Microsoft Community Support though. 🙂

So there you have it.
Now let Google do the work. Let’s help Google a bit  : running multiple versions framework clr .net 1.0 1.1 2.0

You may also like...

8 Responses

  1. Paul Gielens says:

    Is is posible to compile for net1.1 correct? Cause that is all we need.

  2. Dennis, I think “When not specified, your applications will run in the latest version available.” is not quite right.

    The behavior actually is: “When the application is started up on the .NET Framework 1.0, 1.1 or 2.0, the CLR (mscoree) looks at the .NET Framework version recorded in the application and tries to run the application on the version of the .NET Framework that the application was compiled with. If that version is not installed on the machine, the CLR will attempt to start the application on the latest .NET Framework and CLR, for example, an application compiled for .NET Framework 1.0 running on a machine with only .NET Framework 1.1 will be rolled forward to run on the .NET Framework 1.1. Likewise, an application compiled for .NET Framework 1.1 running on a machine with only the .NET Framework 2.0 will be rolled forward to run on the .NET Framework 2.0.”

  3. @Erwyn : You’re quite right. During lunch I thought about it and figured it’d be pretty weird to implement it like that. I rechecked and it and made a reading mistake in the table in the compatibility article. The table says it quite right, but while going through all the articles I got it mixxed up. The thing I ‘quoted’ was when your addin runs in a native app like Office or IE.

    @Paul : I don’t get it. Compile what in where? If you mean what Erwyn just pointed out… Everything works fine when just compiling applications in 1.1 and having 1.1 installed.

  4. Yes, you can develop .NET 1.1 applications in Visual Studio 2005! See Scott Hanselman’s post “Building .NET 1.1 Projects using Visual Studio 2005” at http://www.hanselman.com/blog/BuildingNET11ProjectsUsingVisualStudio2005.aspx

  5. Thomas, thanks for the link. I didn’t know that.

    It’s still a work in progress though, just an announcement that they’ll create MSBEE, nothing more yet. It’s funny though. But for developers it’ll be hard not to use the .NET 2.0 features.

  6. Albert says:

    It’s a bit more than just an anouncement. Although it does not have IDE integration the MSBEE does build 1.1 applications.
    You have to remove the typical 2.0 stuff like the references to generics but it let’s you build a 1.1 application.
    The nice thing about it is it let’s you use VS2005 for your new applications and with the help of the MSBEE for your legacy 1.1 code.

  7. Hubert Hickey says:

    I have net 1.0, 1.5, 2.0, 3.0, and 3.5 on my computer using up a heck of a lot of disk space. I was able to remove 1.0 and 1.5, but 2.0 refuses to be removed because it will affect other applications. If this is so, then what does 3.0 and 3.5 do? I just want some of my disk real estate back!
    Hubert

  8. Dennis van der Stelt says:

    Why would you want to install 1.0 and 1.1? It’s probably only a couple of MB’s, where as Windows takes up thousands of MB’s

    And you need 2.0, 3.0 and 3.5 because they’re linked. 3.5 can’t work without 2.0 and 3.0. Long story, but read the following posts

    http://www.danielmoth.com/Blog/2007/06/net-framework-35.html
    http://www.danielmoth.com/Blog/2007/11/top-10-things-to-know-about-visual.html

Leave a Reply

Your email address will not be published. Required fields are marked *