views:

834

answers:

4

I'm using the .NET framework version 6.0 on Windows Vista. I recently installed a program that displays charts. When I open it, I get an error message from the Microsoft .NET framework:

Class not registered (exception from HRESULT: Ox80040154 (REGDB_E_CLASSNOTREG)).

How do I fix the problem? Thanks.

+2  A: 

The simple answer is that you register the class. (if you knew which class wasn't registered, and what library it was in.) But its a big failing of errors such as this that they don't tell you these important details.

I think your better option is to uninstall the software, and re-install it carefully, reading every installation panel carefully, checking for prerequisites, or any other instructions. And be sure to start the installer with "Run As Administrator".

If that still fails, call tech-support for the software.

abelenky
A: 

Er, .Net Framework 6.0 you say? The next version of .Net is 4.0 (current one is 3.5 SP1). Do you have a time machine? :)

Traveling Tech Guy
This should probably be a comment, not an answer.
sblom
A: 

This is probably due to a missing dependency or an incorrect version of some binary. You can see managed (MSIL) dependencies by looking at assemblies' manifests using the IL Disassembler tool (ildasm.exe). To explore dependencies in the unmanaged (native) world, use the Dependency Walker tool (depends.exe). These tools variously come with the .NET Framework, Visual Studio, etc., or may be available on Microsoft's website.

Zoltan Szilagyi
A: 

I think that 6.0 is the Windows version. Thats matches with Vista version. However the problem is related to COM registration. There is a class that's unregistered and probably (as abelenky pointed out) that failed on setup because that was not executed as administrator. My advice:

  1. run again the setup as admin (that should ocurred automatically if the setup was named setup or install or with a name with those words) then try again
  2. if it doesn't work run the app as admin
  3. if still doesn't work try looking dependencies, here I'd use Depencency Walker on the COM dlls the program references.

There is yet an unsolved problem if the program is not yours, which are those COM dlls, the program references?, well here I'd:

  1. try to register all dlls within the program's folder
  2. if that doesn't work I'd try System32 folder sorting by creation date.

I'm thinking here in an application that's not fully supported in Vista and how to force its installation.

Any other ideas?

Eugenio Miró