运行时0x80040154(REGDB_E_CLASSNOTREG)错误

时间:2014-11-10 06:44:32

标签: vb.net visual-studio-2010 windows-8 runtime-error

我试图在Windows 8机器上运行我的程序,并且它在运行时给出了这个错误(0x80040154(REGDB_E_CLASSNOTREG))。当我在安装了Windows 7的计算机上运行它时,我没有遇到任何问题。

以下是详细信息(内部异常):

 System.InvalidOperationException was unhandled
 HResult=-2146233079
 Message=An error occurred creating the form. See Exception.InnerException for    details.  The error is: Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
Source=PayrollSystem
StackTrace:
   at PayrollSystem.My.MyProject.MyForms.Create__Instance__[T](T Instance) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 190
   at PayrollSystem.My.MyProject.MyForms.get_frmMain()
   at PayrollSystem.My.MyApplication.OnCreateMainForm() in \\Acc4-22\hideki programs\PayrollSystem_Program\PayrollSystem\My Project\Application.Designer.vb:line 35
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
   at PayrollSystem.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
InnerException: System.Runtime.InteropServices.COMException
   HResult=-2147221164
   Message=Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
   Source=System.Windows.Forms
   ErrorCode=-2147221164
   StackTrace:
        at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
        at System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid)
        at System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
        at System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
        at System.Windows.Forms.AxHost.CreateInstance()
        at System.Windows.Forms.AxHost.GetOcxCreate()
        at System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
        at System.Windows.Forms.AxHost.CreateHandle()
        at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
        at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
        at System.Windows.Forms.AxHost.EndInit()
        at PayrollSystem.frmMain.InitializeComponent() in \\Acc4-22\hideki programs\PayrollSystem_Program\PayrollSystem\FrmMain.Designer.vb:line 522
        at PayrollSystem.frmMain..ctor()
   InnerException:

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

错误和调用堆栈表示您的PayrollSystem.frmMain依赖的OLE或ActiveX控件,但未安装。至于它想要实例化的组件,还不足以继续。

从callstack判断,唯一可以知道的方法是实际查看frmMain.InitializeComponent中的代码和/或查看表单的资源文件,看看你在那里嵌入了什么。