使用vs2008 c#。 你好, 我有一个应用程序,我试图决定是否应该使用Crystal报表或Visual Studio安装附带的报表查看器。
我的问题是,虽然它可以在我的开发机器上运行良好,但是应用程序将部署到远程位置的许多机器将不会安装水晶报告或报告查看器的运行时。
因此,如果我使用其中任何一个构建应用程序,并阻止用户仅在没有运行时的机器上访问报告,那么应用程序是否运行正常,或者我是否应该在安装时出现疯狂错误等
任何建议表示赞赏。
答案 0 :(得分:2)
您实际上可以在部署程序包或部署项目或ClickOnce上包含Crystal Reports运行时。在运行时期间,您可能会遇到错误,您可以在catch语句或application_threadexception事件上处理错误,如下所示:
private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
//For missing crystal reports assembly
if ((e.Exception is System.IO.FileNotFoundException) && (e.Exception.Message.IndexOf("CrystalDecisions.CrystalReports.Engine") > -1))
MessageBox.Show("Crystal Reports is required to use this feature", "Crystal Reports", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}