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

系统配置: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位的,所以不能运行,直观修改请看图片。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值