Fog Creek Software
Discussion Board

Welcome! and rules

Joel on Software

If .Net 1 & 1.1 installed which is used?

If I have an app written for .net 1.0 and I install it an .net 1.0, THEN the user updates .net to 1.1, will my app using the 1.0 or newer 1.1 assemblies?

I'm THINKING that my app would use the older .net 1.0 (because that's what it was compiled against) if it's present. If 1.0 is NOT present but 1.1 IS, then it would use 1.1 Framework.

If I'm right, doesn't this invalidate Microsoft's .net linker Security argument?
(The one that says : if you distribute an app written against .net runtime version A and MS finds a security problem in .net VErsion A the user should be able to update the framework to Version B and fix the security leak. So, now when your app runs, it's not exposing the PC to this old security leak).

But... If I'm right, the PC maintains BOTH the old A and new B frameworks side by side and my app will still use the older A framework.

So the situation would be the SAME as if I'd LINKED my app to .net version A.


Mr. Analogy {ISV owner}
Tuesday, February 1, 2005

In general, an app built against the .NET Framework 1.0 will work with that version if it runs on a PC with both 1.0 and 1.1 installed. However, it does depend on what you have in the app's configuration file as you can use the configuration file to alter the default behaviour.

See this link for an explanation of how it all works:

Mike Green
Tuesday, February 1, 2005


If Microsoft patches the .NET Framework v1.0.3705, it is still v1.0.3705. It just has SPs applied. Thus if your app demands 1.0.3705 (1.0) the patched framework will be used, but it's still 1.0.

You know the whole side-by-side thing has me wondering - what happens when we have 10 versions of the framework and they're all running side-by-side? It's one of those ideas that seems great at the outset, but it doesn't have a longterm future.

Dennis Forbes
Tuesday, February 1, 2005

Thanks Dennis. I didn't realize that .net has patches.  That makes it a bit more likely that we will NOT have a a zillion .net versions.  (I.e., if they needed a new .net version every time they needed a bug fix in such a heap of code, then we'd have a lot of versions).

Yes, the issue of side-by-side .net execution seems to defeat the whole "shared space" idea where all the apps are in the same "memory space" (I forget the terminology) .

Hopefully, all of this means that microsoft will be motivated to have infrequent new .net versions.  Then maybe we can actually get one version of .net installed on enough computers so that we don't have to distribute it for everyone.

Mr. Analogy {ISV owner}
Tuesday, February 1, 2005

Had you considering trying it out?

using System;

public class VersionTest
    public static void Main()

Took approximately 14 seconds to write. Took another 30 seconds to compile it twice, with 1.0 and 1.1, and run it twice.

There's no surprises when you test things yourself.

Brad Wilson
Tuesday, February 1, 2005

*  Recent Topics

*  Fog Creek Home