您的位置:首页 > 其它

CrystalDecisions.CrystalReports.Engine.ReportDocument 的類型初始設定式發生例外狀況 2147221164

2015-10-16 17:49 513 查看
系统配置:WIN8.1 64位操作系统、X64CPU,VS2013、Crystal 32位(CRRuntime_32bit_13_0_14.msi)。

问题描述:当把项目文件框架由4.5改为4.0时,所有原来运行正常的水晶报表全部出错。

出错提示:如下

未处理System.TypeInitializationException

HResult=-2146233036

Message='CrystalDecisions.CrystalReports.Engine.ReportDocument' 的類型初始設定式發生例外狀況。

Source=CrystalDecisions.CrystalReports.Engine

TypeName=CrystalDecisions.CrystalReports.Engine.ReportDocument

StackTrace:

於 CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()

於 CrystalDecisions.CrystalReports.Engine.ReportClass..ctor()

於 WindowsFormsApplication2.CrystalReport1..ctor() 於 d:\WangYangSheng\ZTemp\WindowsFormsApplication1\WindowsFormsApplication2\CrystalReport1.cs: 行 21

於 WindowsFormsApplication2.Form2.button1_Click(Object sender, EventArgs e) 於 d:\WangYangSheng\ZTemp\WindowsFormsApplication1\WindowsFormsApplication2\Form2.cs: 行 22

於 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

於 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

於 System.Windows.Forms.Control.WndProc(Message& m)

於 System.Windows.Forms.ButtonBase.WndProc(Message& m)

於 System.Windows.Forms.Button.WndProc(Message& m)

於 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

於 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)

於 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)

於 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)

於 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)

於 WindowsFormsApplication2.Program.Main() 於 d:\WangYangSheng\ZTemp\WindowsFormsApplication1\WindowsFormsApplication2\Program.cs: 行 19

於 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)

於 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

於 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

於 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

於 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

於 System.Threading.ThreadHelper.ThreadStart()

InnerException: System.Runtime.InteropServices.COMException

HResult=-2147221164

Message=擷取元件 (CLSID 為 {4DB2E2BB-78E6-4AEA-BEFB-FDAAB610FD1B}) 的 COM Class Factory 失敗,因為發生下列錯誤: 80040154 類別未登錄 (發生例外狀況於 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))。

Source=CrystalDecisions.CrystalReports.Engine

ErrorCode=-2147221164

StackTrace:

於 CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor()

InnerException:

问题分析与解决:将Any CPU改为X86即可。

因为水晶报表是32位的,修改成4框架后默认按照当前操作系统编译项目,我的环境是64位的,所以不能运行,直观修改请看图片。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: