Click here to Skip to main content
15,867,308 members
Articles / Programming Languages / C#

.NET Framework Checker

Rate me:
Please Sign up or sign in to vote.
4.91/5 (33 votes)
29 Oct 2018CPOL3 min read 72.4K   6.9K   71   37
List all available .NET Frameworks and check linked .NET components of installed apps
This tool lists all available .NET Frameworks and checks the needed/linked .NET components of installed apps by selecting a target directory.

Introduction

Users can install and run multiple versions of the .NET Framework on their computers. When you develop or deploy your app, you might need to know which .NET Framework versions are installed on the target's computer. This article manages the rare (but possible) situation if there aren't any .NET Frameworks installed. For this purpose, it starts with a pure C++ application (Starter) that doesn't need any .NET components in order to check whether at least anyone .NET Framework is available. If yes, the main application starts and shows a GUI with located components. Now the user has a possibility, to select a directory to check all *.EXEs, *.DLLs and *.OCXs in it for fulfillment of .NET requirements.

Background

To get an accurate list of the .NET Framework versions installed on a computer, we need to view the registry. This feature is accompanied by Microsoft's document here. To find the .NET Framework 1 - 4, we need to use the following subkey:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP

For Versions 4.5 and later, we are looking for the following subkey:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

.NET Framework 4.5 and later

Value of the Release DWORD Version
378389 .NET Framework 4.5
378675 .NET Framework 4.5.1 installed with Windows 8.1 or Windows Server 2012 R2
378758 .NET Framework 4.5.1 installed on Windows 8, Windows 7 SP1, or Windows Vista SP2
379893 .NET Framework 4.5.2
Windows 10: 393295
On all other OS versions: 393297
.NET Framework 4.6
Windows 10 November Update: 394254
On all other OS versions: 394271
.NET Framework 4.6.1
Windows Server 2016: 394802
On all other OS versions: 394806
.NET Framework 4.6.2
Windows 10 Creators Update: 460798
On all other OS versions: 460805
.NET Framework 4.7
Windows 10 Creators Update: 461308
On all other OS versions: 461310
.NET Framework 4.7.1
Windows 10 April 2018: 461808
On all other OS versions: 461814
.NET Framework 4.7.2

That is exactly what the tool does:

C#
int GetNetfxSpLevel(string pszNetfxRegKeyName, string pszNetfxRegValueName)
{      
     try
     {
        var oRet = Registry.GetValue(pszNetfxRegKeyName, pszNetfxRegValueName, "");
        if (oRet != null) 
           return (Int32)oRet;
      }
      catch (Exception ex)
      {
        _oLog.Write(ex);
       }
       return -1;
}

Using the Tool

After starting the CheckDotNet.exe, you will see the following message box if absolutely no .NET Framework is available on your system:

Nothing found

However, this should be a very rare situation.

Most commonly, it will be found that one or more components and the CheckDotNet.exe will start the GUI application written in C#:

Image 3

It lists the available vs. not installed components on the left.

On the right, you can scan the target directory to check whether all applications in it fulfill the .NET dependency.

There is now a CMD line mode, many thanks to LightTempler:

CMD Mode

[UPDATE]

Updated to detect up to .NET 4.8.1, many thanks to Peter Thomas!

History

  • Current version 1.0.0
  • Added the command-line Version Win32Analyser.zip Image 5
  • Updated to Version 2.0.0 by adding recognition of .NET 4.6.2, 4.7, 4.7.1, 4.7.2
  • Updated to Version 3.2.0
  • Updated to Version 10.1.0

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Germany Germany

I'm a software developer living in Germany with my family (wife & 2 sons).
My hobbies: sport, traveling, books (former reading, now hearing).
Welcome to my homepage: http://leochapiro.de

Comments and Discussions

 
Questionthere is nobody who could update that, thanks Pin
Member 1474358716-Mar-20 2:05
Member 1474358716-Mar-20 2:05 
AnswerRe: there is nobody who could update that, thanks Pin
Leo Chapiro24-Mar-23 3:20
professionalLeo Chapiro24-Mar-23 3:20 
QuestionOn running CheckDotNet.exe on vanilla windows machine Pin
Vijaykumar Vadnal16-Jul-19 1:12
Vijaykumar Vadnal16-Jul-19 1:12 
Question.NET Framework 4.8 Pin
Alphons van der Heijden13-May-19 22:11
professionalAlphons van der Heijden13-May-19 22:11 
AnswerRe: .NET Framework 4.8 Pin
Peter Thomas 20217-Jan-23 22:53
Peter Thomas 20217-Jan-23 22:53 
GeneralRe: .NET Framework 4.8 Pin
Leo Chapiro8-Sep-23 5:51
professionalLeo Chapiro8-Sep-23 5:51 
Question.Net Core Pin
Member 244330629-Oct-18 5:47
Member 244330629-Oct-18 5:47 
SuggestionSmall suggestions Pin
BugDigger29-Oct-18 1:43
BugDigger29-Oct-18 1:43 
GeneralRe: Small suggestions Pin
Leo Chapiro29-Oct-18 2:37
professionalLeo Chapiro29-Oct-18 2:37 
QuestionRevision 4.6.2-4-7-2 Pin
Member 244330624-Oct-18 12:00
Member 244330624-Oct-18 12:00 
AnswerRe: Revision 4.6.2-4-7-2 Pin
Leo Chapiro29-Oct-18 1:32
professionalLeo Chapiro29-Oct-18 1:32 
SuggestionColor highlighting of installed/not installed Pin
DanielKenner15-Oct-18 2:42
DanielKenner15-Oct-18 2:42 
GeneralRe: Color highlighting of installed/not installed Pin
Leo Chapiro23-Oct-18 4:05
professionalLeo Chapiro23-Oct-18 4:05 
BugTypo in Dialog and GroupBox Titles Pin
DanielKenner15-Oct-18 2:35
DanielKenner15-Oct-18 2:35 
GeneralRe: Typo in Dialog and GroupBox Titles Pin
Leo Chapiro23-Oct-18 4:06
professionalLeo Chapiro23-Oct-18 4:06 
QuestionMissing CLI Sample :) Pin
phenixcorp23-Aug-18 11:33
professionalphenixcorp23-Aug-18 11:33 
QuestionTypo Pin
Phil Parkin16-Aug-18 6:21
Phil Parkin16-Aug-18 6:21 
AnswerRe: Typo Pin
Leo Chapiro17-Aug-18 1:36
professionalLeo Chapiro17-Aug-18 1:36 
SuggestionA nice version checker (without code) Pin
Member 1395130016-Aug-18 1:32
Member 1395130016-Aug-18 1:32 
GeneralRe: A nice version checker (without code) Pin
Leo Chapiro16-Aug-18 2:15
professionalLeo Chapiro16-Aug-18 2:15 
GeneralRe: A nice version checker (without code) Pin
Member 1395130016-Aug-18 3:55
Member 1395130016-Aug-18 3:55 
QuestionRequesting More Pin
Member 1394886415-Aug-18 21:35
Member 1394886415-Aug-18 21:35 
QuestionNice, but... Pin
huipri15-Aug-18 10:20
huipri15-Aug-18 10:20 
AnswerRe: Nice, but... Pin
Leo Chapiro16-Aug-18 0:20
professionalLeo Chapiro16-Aug-18 0:20 
GeneralRe: Nice, but... Pin
Youregi16-Aug-18 22:26
Youregi16-Aug-18 22:26 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.