?? CLR Version Confusion ??

T

Tom Baxter

Hello all,

I've Googled this topic but I've not found a satisfactory answer. I was
hoping someone here could shed some light on this.

I understand there is a difference between the CLR version and the Framework
version. The latest Framework version is 3.5 SP1. Until recently, I thought
there was only one version of the CLR that had been released since 2005, and
that was 2.0.50727.3053, but now I'm starting to doubt that.

I'm running a machine w/.NET 3.5, SP1 installed. My confusion stems from
what appears in the User-Agent header generated by IE:

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1;
..NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729;
..NET CLR 3.0.30618)

I was surprised to see CLR 3.5.30729 and 3.0.30618 listed in the HTTP
header. Do these versions of the CLR exist? If not, why are they listed in
the HTTP header?

When I create a Visual Studio 2008 app, targeting the 3.5 framework, a call
to "Environment.Version" returns 2.0.50727.3053 (not the 3.5 version).
Interestingly, the "clrver.exe" tool that ships with Visual Studio reports
v2.0.50727 as the only installed CLR. Additionally, if I set up an
App.config with either of these elements:

<startup>
<requiredRuntime version="v3.5.30729"/>
</startup>

<startup>
<requiredRuntime version="3.0.30618"/>
</startup>

my app fails because the required version of the CLR is not present.

So, it seems that I only have v2.0 of the CLR, yet for some reason IE is
reporting the existence of versions 3.0 and 3.5. Can someone explain the
discrepancy?

Thanks.
 
K

Kornél Pál

Cowboy said:
My guess: Silverlight.

As far as I know Silverlight does not advertise itself in the User-Agent
header.

There are no such things as 3.0 and 3.5 CLRs yet they advertise
themselves in User-Agent as such. Microsoft just followed the previous
naming conventions for advertising .NET Framework versions.

..NET Framework 3.0 and 3.5 are separate products but the only consist of
add-on assemblies that use the 2.0 CLR.

Kornél
 
R

rich

As far as I know Silverlight does not advertise itself in the User-Agent
header.

There are no such things as 3.0 and 3.5 CLRs yet they advertise
themselves in User-Agent as such. Microsoft just followed the previous
naming conventions for advertising .NET Framework versions.

.NET Framework 3.0 and 3.5 are separate products but the only consist of
add-on assemblies that use the 2.0 CLR.

Kornél

Hi guys. I work on the CLR team and can help you with this issue. I've
got a few pieces of info to share.

- The supportedRuntime and requiredRuntime elements only allow you to
pre-req CLR versions, not framework versions
- requiredRuntime works, but is deprecated. Please use
supportedRuntime instead.
- As a result, the best you can write is <supportedRuntime>2.0.50727</
supportedRuntime>
- This config file feature does not intersect with Silverlight or the
user agent string in any way
- We are aware that the lack of ability to pre-req Framework versions
is a significant limitation and are looking into that for Dev10
(current version in development)

I hope that helps.

rich
 
C

Cowboy \(Gregory A. Beamer\)

With Silverlight 2, I would imagine it is possible they would be in the
header, as Silverlight 2 is a mini CLR that runs in the browser process.
This is the most plausible explanation for me, as there is no reason for
advertising a user agent from a browser unless the server could use it, as
there is no fundamental difference, sans Silverlight, from IE with 2.0 and
IE with 3.5 in serving pages.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top