installation - How do I detect what .NET Framework versions and service packs are installed? -


a similar question asked here, specific .net 3.5. specifically, i'm looking following:

  1. what correct way determine .net framework versions , service packs installed?
  2. is there list of registry keys can used?
  3. are there dependencies between framework versions?

the registry the official way detect if specific version of framework installed.

enter image description here

which registry keys needed change depending on framework version looking for:

 framework version  registry key ------------------------------------------------------------------------------------------ 1.0                hklm\software\microsoft\.netframework\policy\v1.0\3705  1.1                hklm\software\microsoft\net framework setup\ndp\v1.1.4322\install  2.0                hklm\software\microsoft\net framework setup\ndp\v2.0.50727\install  3.0                hklm\software\microsoft\net framework setup\ndp\v3.0\setup\installsuccess  3.5                hklm\software\microsoft\net framework setup\ndp\v3.5\install  4.0 client profile hklm\software\microsoft\net framework setup\ndp\v4\client\install 4.0 full profile   hklm\software\microsoft\net framework setup\ndp\v4\full\install 

generally looking for:

"install"=dword:00000001 

except .net 1.0, value string (reg_sz) rather number (reg_dword).

determining service pack level follows similar pattern:

 framework version  registry key ------------------------------------------------------------------------------------------ 1.0                hklm\software\microsoft\active setup\installed components\{78705f0d-e8db-4b2d-8193-982bdda15ecd}\version  1.0[1]             hklm\software\microsoft\active setup\installed components\{fdc11a6f-17d1-48f9-9ea3-9051954baa24}\version  1.1                hklm\software\microsoft\net framework setup\ndp\v1.1.4322\sp  2.0                hklm\software\microsoft\net framework setup\ndp\v2.0.50727\sp  3.0                hklm\software\microsoft\net framework setup\ndp\v3.0\sp  3.5                hklm\software\microsoft\net framework setup\ndp\v3.5\sp  4.0 client profile hklm\software\microsoft\net framework setup\ndp\v4\client\servicing 4.0 full profile   hklm\software\microsoft\net framework setup\ndp\v4\full\servicing  [1] windows media center or windows xp tablet edition 

as can see, determining sp level .net 1.0 changes if running on windows media center or windows xp tablet edition. again, .net 1.0 uses string value while of others use dword.

for .net 1.0 string value @ either of these keys has format of #,#,####,#. last # service pack level.

while didn't explicitly ask this, if want know exact version number of framework use these registry keys:

 framework version  registry key ------------------------------------------------------------------------------------------ 1.0                hklm\software\microsoft\active setup\installed components\{78705f0d-e8db-4b2d-8193-982bdda15ecd}\version  1.0[1]             hklm\software\microsoft\active setup\installed components\{fdc11a6f-17d1-48f9-9ea3-9051954baa24}\version  1.1                hklm\software\microsoft\net framework setup\ndp\v1.1.4322  2.0[2]             hklm\software\microsoft\net framework setup\ndp\v2.0.50727\version  2.0[3]             hklm\software\microsoft\net framework setup\ndp\v2.0.50727\increment 3.0                hklm\software\microsoft\net framework setup\ndp\v3.0\version  3.5                hklm\software\microsoft\net framework setup\ndp\v3.5\version  4.0 client profile hklm\software\microsoft\net framework setup\ndp\v4\version  4.0 full profile   hklm\software\microsoft\net framework setup\ndp\v4\version   [1] windows media center or windows xp tablet edition [2] .net 2.0 sp1 [3] .net 2.0 original release (rtm) 

again, .net 1.0 uses string value while of others use dword.

additional notes

  • for .net 1.0 string value @ either of these keys has format of #,#,####,#. #,#,#### portion of string framework version.

  • for .net 1.1, use name of registry key itself, represents version number.

  • finally, if @ dependencies, .net 3.0 adds additional functionality .net 2.0 both .net 2.0 , .net 3.0 must both evaulate being installed correctly .net 3.0 installed. likewise, .net 3.5 adds additional functionality .net 2.0 , .net 3.0, .net 2.0, .net 3.0, , .net 3. should evaluate being installed correctly .net 3.5 installed.

  • .net 4.0 installs new version of clr (clr version 4.0) can run side-by-side clr 2.0.

update .net 4.5

there won't v4.5 key in registry if .net 4.5 installed. instead have check if hklm\software\microsoft\net framework setup\ndp\v4\full key contains value called release. if value present, .net 4.5 installed, otherwise not. more details can found here , here.


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -