What version of .net am I using?

I've got .Net 1 through 3.5 installed on our web server, but when I run the .Net Checker Tool it says the run time versions for .Net are 1.1.4322.2407 and 2.0.50727.3053 and the ADO run time version is 2.82.3959.0.

Why don't I see a run time version for 3.0 or 3.5?

One of our developers has written an app that needs the 3.5 libraries.  He's explained to me that his app fails because the 3.5 libraries are not available on the server.  

How can I determine if the .net 3.0 or 3.5 libraries are available on the server?


Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

käµfm³d 👽Commented:
Go to C:\windows\Microsoft .NET\Framework

you should see each of the frameworks you have installed.
the problem with .NET 3.5 is that the actual version of .NET has not changed, it is still v2.0.50727, which is what you correctly report as highest version.

However, if you look at the assemblies, then the newer assemblies are marked with a version 2.0 when they where added for v3.5 specifically. System.Web.Extensions is one such assembly, its version tag is and its library is under C:\Program Files\Reference  Assemblies\Microsoft\Framework\v3.5\System.Web.Extensions.dll (on my system).

A comprehensive list of all possible versions: http://www.tmgdevelopment.co.uk/versioncheck.htm

Check this directory: C:\Windows\Microsoft.NET\Framework to know whether version 3.5 is on your computer. It should contain a directory v3.5 next to the v2.0.50727 directory.

-- Abel --
Even that may not be enough. You say that one of your developers says that they have written an application that requires that. Suppose that this developer was bold and new about your mixed situation and tried to prevent any errors by putting this line in the code:

if( Environment.Version.ToString() != "3.5")      throw SomeException();

then he may be in error there, always, because when you have multiple installations of .NET (esp 2.0 and 3.5 together and that's very common) the Environment.Version will report 2.0. A better approach, through code would be to try to load something of version 3.5:
AppDomain.CurrentDomain.Load(                "System.Core, Version=, Culture=neutral,

this line will raise an error if .NET 3.5 is not present. This method is explained here: http://stackoverflow.com/questions/16178/best-way-to-determine-if-net-3-5-is-installed

Finally, there's an in-depth framework checking tool, incl. source, that you can use to check your version can be found here: http://blogs.msdn.com/astebner/archive/2006/08/02/687233.aspx (but at its core is the same load assembly technique).

(yet other techniques I found here: http://www.walkernews.net/2008/05/16/how-to-check-net-framework-version-installed/, but not all of them worked for me, namely the javascript approach failed on my IE7)

-- Abel --

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

mobotAuthor Commented:
All - it will be Tuesday before I'm back in the office to follow up on your suggestions.  Thanks for responding.  
mobotAuthor Commented:
Gee,  this is a bit of a mess, seems to me there are a few things that need to be checked before one can say what version and what assemblies one has on the system.
I chose to use the registry key method mentioned on the www.walkdernews.net site.  Along with the directory structure on the server 'c:\windows\microsoft.net\framework, and the assemblies at C:\Program Files\Reference  Assemblies\Microsoft\Framework\v3.5\System.Web.Extensions.dll.  Based on what  I found when I checked those things out It appears that I do have .Net version 3.5 on the server.
(from grading comment, not visible to others)> Gee, this is a bit of a mess, seems to me there are a few things that
> need to be checked before one can say what version and what
> assemblies one has on the system.

Yes, you are totally correct. Microsoft did a lousy job there. Glad you found out that your system is all ok  ;)
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.