Click here to Skip to main content
13,349,350 members (57,078 online)
Click here to Skip to main content
Add your own
alternative version


94 bookmarked
Posted 10 Jun 2007

XFxDetect - A utility to detect which versions of .Net are installed

, 12 Mar 2011
Rate this:
Please Sign up or sign in to vote.
XFxDetect inspects registry and file system of local or remote computer to determine which versions of .Net Framework are installed.


I wrote XFxDetect to help in diagnosing problems with .Net installations, because I found that some of the available diagnostic tools did a very superficial job, reporting that a .Net version was installed when it obviously was not. There are many web sites - on MSDN and private blogs - that document the registry locations and folders used by the .Net Frameworks. What was needed, I felt, was utility that cross-checked registry locations with what actually existed in file system folders. This is what XFxDetect attempts to do.

Note that XFxDetect is only a diagnostic tool - it makes no attempt to repair or modify any registry setting or file.

How It Works

When you run XFxDetect, it scans first registry and then file system for evidence of .Net Frameworks (1.0, 1.1, 2.0, 3.0, and 3.5) and their service packs. Any discrepancy between registry and what exists on disk is immediately apparent.


You can also view details of which registry settings and folders are being checked:



The Settings dialog allows you to select remote computer and to enable logging:


After selecting remote computer, click on Refresh to display the results:


XFxDetect Log File

The log file records information gathered by XFxDetect:


In the above screenshot, the five released versions of the .Net Framework (1.0, 1.1, 2.0, 3.0, 3.5) are highlighted (0 = not detected, 1 = detected). Each line indicates source of data (local or remote computer name), and whether information was collected from registry or file system.

Accessing Remote Computers

The Settings dialog (see screenshot above) allows you to select remote computer by entering computer name and, optionally, name of file share. The file share name is used to access files on the remote computer's drive where .Net Framework files are installed. Typically, this is C: drive. In some corporate environments, C: drive is set up with standard share name, such as "C". You may have to enter password before you can access remote drive - quick way to check this is to use Windows Explorer to access C: drive on remote computer. If you need to enter username and password, you will be asked for them, and then you can run XFxDetect to gather information from remote computer.

Accessing remote computer registry and file system may require you to start some services that are not normally running. In the following screenshot from Vista, three services needed to be started before access was possible:



  • Currently only the standard .Net Framework folders are checked.


Revision History

Version 2.0 — 2011 March 2

  • Added support for .NET 4.0
  • Converted to VS2008

Version 1.0 — 2007 June 8

  • Initial public release


This software is released under the Code Project Open License (CPOL). You are free to use this software in any way you like, except that you may not sell this source code. This software is provided "as is" with no expressed or implied warranty. I accept no liability for any damage or loss of business that this software may cause.


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


About the Author

Hans Dietrich
Software Developer (Senior) Hans Dietrich Software
United States United States
I attended St. Michael's College of the University of Toronto, with the intention of becoming a priest. A friend in the University's Computer Science Department got me interested in programming, and I have been hooked ever since.

Recently, I have moved to Los Angeles where I am doing consulting and development work.

For consulting and custom software development, please see

You may also be interested in...

Comments and Discussions

GeneralMy vote of 5 Pin
Prasad Khandekar24-Jul-13 0:09
professionalPrasad Khandekar24-Jul-13 0:09 
GeneralMy vote of 5 Pin
Amitosh Swain2-Jun-13 3:12
memberAmitosh Swain2-Jun-13 3:12 
AnswerRe: My vote of 5 Pin
Kenneth Kasajian25-Jul-13 17:07
memberKenneth Kasajian25-Jul-13 17:07 
GeneralRe: My vote of 5 Pin
Amitosh S.M.26-Jul-13 16:51
memberAmitosh S.M.26-Jul-13 16:51 
GeneralMy vote of 5 Pin
ledtech313-Mar-13 5:07
memberledtech313-Mar-13 5:07 
Question2 more Links Pin
ledtech313-Mar-13 5:06
memberledtech313-Mar-13 5:06 
GeneralMy vote of 5 Pin
gndnet29-Jun-12 15:34
membergndnet29-Jun-12 15:34 
GeneralMy vote of 5 Pin
Kanasz Robert17-Jan-12 3:19
mvpKanasz Robert17-Jan-12 3:19 
GeneralMy vote of 5 Pin
igetorix25-Mar-11 0:15
memberigetorix25-Mar-11 0:15 
GeneralMy vote of 5 Pin
hikaru15-Mar-11 8:55
memberhikaru15-Mar-11 8:55 
GeneralClient Profile Pin
Severin Meyer3-Mar-11 5:39
memberSeverin Meyer3-Mar-11 5:39 
GeneralRe: Client Profile Pin
Hans Dietrich13-Mar-11 15:16
mentorHans Dietrich13-Mar-11 15:16 
GeneralMy vote of 5 Pin
marco_ragogna3-Mar-11 1:41
membermarco_ragogna3-Mar-11 1:41 
Questionupdates for .net 4.0 ?? Pin
alhambra-eidos2-Mar-11 4:57
memberalhambra-eidos2-Mar-11 4:57 
AnswerRe: updates for .net 4.0 ?? Pin
Hans Dietrich2-Mar-11 20:47
mentorHans Dietrich2-Mar-11 20:47 
GeneralUsername and password for remote computers Pin
DimondWolfe19-Oct-09 6:23
memberDimondWolfe19-Oct-09 6:23 
This app is not asking for a UID and PW, even though I know the remote machines require it. It just fails to connect. Is there a way to force a UID and PW into the code? I am more than willing to recompile each time I need to change the credentials, although it seems like it would be an easy matter of adding a global variable and window to enter that into. Would you happen to have an updated version of this utility?

Thank you very much!

You know what ol' Jack Burton says at a time like this...

QuestionRe: Username and password for remote computers Pin
DavidCrow8-Mar-11 7:22
memberDavidCrow8-Mar-11 7:22 
AnswerRe: Username and password for remote computers Pin
DimondWolfe8-Mar-11 7:33
memberDimondWolfe8-Mar-11 7:33 
GeneralV6.0 Doesn't Compile Pin
Nice Life18-Jun-07 20:50
memberNice Life18-Jun-07 20:50 
GeneralRe: V6.0 Doesn't Compile Pin
Hans Dietrich19-Jun-07 1:34
mvpHans Dietrich19-Jun-07 1:34 
GeneralBut don't you need .NET... Pin
Marc Clifton11-Jun-07 3:06
protectorMarc Clifton11-Jun-07 3:06 
GeneralRe: But don't you need .NET... Pin
Nordin Rahman11-Jun-07 5:25
memberNordin Rahman11-Jun-07 5:25 
GeneralRe: But don't you need .NET... Pin
Nishant Sivakumar11-Jun-07 5:33
mvpNishant Sivakumar11-Jun-07 5:33 

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.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.180111.1 | Last Updated 12 Mar 2011
Article Copyright 2007 by Hans Dietrich
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid