Introduction

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:

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

Usage

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.

Share

About the Author

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 www.hdsoft.org.