我正在将一个桌面应用程序部署到使用Crystal Reports API来显示和打印表单的客户端。我正在使用InstallShield 2012构建安装程序。我还包括了.NET 4.0框架以及所有Crystal程序集。我有2个(与Kinda有关的)问题:
1)每当我尝试在客户端计算机上运行该应用程序时,都会出现以下错误:
The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument'
threw an exception.
我不知道我在这里忘记了什么。该CrystalDecisions.CrystalReports.Engine
dll和大约10个其他Crystal程序集已在GAC中正确注册。
2)我在SAP论坛上提出了这个问题,并被告知我需要将.NET 2.0框架与.NET 4.0框架一起包括在内。我尝试将.NET 2.0可再发行组件包含在我的安装程序包中,但安装程序未安装它。安装程序是否看到我已经安装了4.0,所以跳过了2.0安装?
当静态构造函数引发异常时,它将包装在中TypeInitializationException
。你需要检查异常对象的InnerException
属性以查看实际的异常。
在暂存/生产环境(未安装Visual Studio)中,你将需要:
AppDomain.UnhandledException
,并将你的记录/跟踪代码放在此处。使用System.Diagnostics.Debug.WriteLine
追踪,或记录(log4net的,ETW)。DbgView(Sysinternals工具)可用于查看Debug.WriteLine跟踪。
谢谢,这使我走上了正确的道路。我已经实现了自己的异常日志记录,但是我没有正确地记录InnerExceptions。
嘿!男人,这是由于缺乏功能....如果看到内部异常,则会看到此消息“访问被拒绝。访问语音功能要求在清单中定义ID_CAP_SPEECH_RECOGNITION。” 因此要摆脱这种例外。如前所述打开语音识别功能。