Searching for .Net versions

(imported topic written by mgelmer23)

Has anyone done any work to easily identify the versions of .Net installed on a system and map the version back to the base product + service pack level (i.e. 3.5.30729.01 --> v3.5 SP1)?

I found various documents that list various ways to query this, with various documents on the build vs the version numbers. The query of the registry I’m using to determine this is listed below. However, I am finding a number of build numbers that I can not find a version number for. Does anyone have any idea what these builds map to?

I’m also not sure if this code properly deals with x86 vs x64 systems.

Any ideas?

(

if

(

exists value “Version” of it

)

then

(

if value “version” of it = “3.5.21022.8” then

“v3.5 SP0”

else if value “version” of it = “3.5.30729.01” then

“v3.5 SP1”

else if value “version” of it = “3.0.4506.30” then

“v3.0 SP0”

else if value “version” of it = “3.0.4506.648” then

“v3.0 SP1”

else if value “version” of it = “3.0.4506.2152” then

“v3.0 SP2”

else if value “version” of it = “2.0.50727.42” then

“v2.0 SP0”

else if value “version” of it = “2.0.50727.1433” then

“v2.0 SP1”

else if value “version” of it = “2.0.50727.3053” then

“v2.0 SP2”

else if value “version” of it = “1.1.4322.573” then

“v1.1 SP0”

else if value “version” of it = “1.1.4322.2032” then

“v1.1 SP1”

else if value “version” of it = “1.1.4322.2300” then

“v1.1 SP2”

else if value “version” of it = “1.1.4322.573” then

“v1.1 SP0”

else if value “version” of it = “1.1.4322.2032” then

“v1.1 SP1”

else if value “version” of it = “1.1.4322.2300” then

“v1.1 SP2”

else if value “version” of it = “1.0.3705.0” then

“v1.0 SP0”

else if value “version” of it = “1.0.3705.209” then

“v1.0 SP1”

else if value “version” of it = “1.0.3705.288” then

“v1.0 SP2”

else if value “version” of it = “1.0.3705.6018” then

“v1.0 SP3”

else

value “Version” of it as string

)

else

“None”

)

of keys of key “hkey_local_machine\software\microsoft\net framework setup\ndp” of registry

(imported comment written by SystemAdmin)

This might be helpful.

Sounds like there are a number of interim/test builds. Rather than making your names match a specific version number, work on a range of numbers which are >= the one you expect and < than the next greater version.

Thus 1.0.3705.293 would be a v1.0 SP2 build ‘with extra fixes/features/bugs’, but not quite SP3.

(imported comment written by mgelmer23)

Thanks!