Diagnosing 'The debugger is not properly installed'

One of the error codes that we included in the VS.NET 2002 and 2003 debuggers is:

The debugger is not properly installed.  Run setup to install or repair the debugger.

Diagnosing this is much harder then it should be (more on this later). For now lets talk about trying to figure out what’s going wrong.

First step, you should follow the instructions. Most of the time this is going to work:

  • Go to Start->Control Panel->Add or Remove Programs->Microsoft Visual Studio.NET <whatever>
  • Click Change/Remove
  • Repair your installation

If that doesn’t work, try reinstalling the .NET Framework debugging services:

  • Start command prompt
  • cd /d %windir%\ Microsoft.NET\Framework\<version>
  • regsvr32.exe mscordbi.dll

Another known reason for this error is that oleaut32.dll isn’t registered:

  • Start command prompt
  • cd /d %windir%\system32
  • regsvr32.exe oleaut32.dll

Also try manually reregistering mdm.exe [updated 4/28/2004]:

  • Start command prompt
  • %CommonProgramFiles%\Microsoft Shared\VS7Debug\mdm.exe" /regserver

If all this doesn’t succeed, try using DebuggerDiagnostics.exe. You can install it from http://download.microsoft.com/download/a/6/f/a6f1de85-7284-4c97-9ddd-6f18000f5848/DebuggerDiagnostics.msi. Here is how to interpret the output:

[Updated on 8/17/2004] If you are getting failures from the 'UseOleAut32' part of DebuggerDiagnostics.exe (see bellow), then you have a broken installation of oleaut32.dll. If you haven't already done so, try 'regsvr32 oleaut32.dll'. If the problem persists, then download and run OleAutClean.exe. After that has finished, you will need to run 'regsrv32 oleaut32.dll'. Example Failure:

Begin 'UseOleAut32(spMachine)'
    QueryInterface failed.
    MarshalConnectionPointContainer() = '8007007e'
Result of 'UseOleAut32(spMachine)' is '8007007e'

For anything else, check the comments of this post. They might already have the solution, if they don't add your comments here. I guess you can't leave comments on really old posts.