Friday, September 3, 2010

CorFlags, C# and InteropServices.COMException (0x80040154): Class not registered

CorFlags is a Visual Studio command line utility that allows an executable that was compiled as (for instance) 'anycpu' to be run on a machine of a different architecture.

Some applications written in VS and compiled with x86, will not run on Windows 7.

The executable needs to be modified using corflags.

The error that caused me to find this issue is

System.Runtime.InteropServices.COMException (0x80040154): Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

Run this in the VS command line.  Navigate to the executable folder.

corflags [path] /32bit

Now, the /32bit tells the .net framework to run this app as a 32 bit application.  Other options are available.

No comments:

Post a Comment