2010-03-09 136 views
2

使用vs2008 c#。 你好, 我有一个应用程序,我试图决定是否应该使用Crystal报表或Report Studio安装程序附带的报表查看器。Crystal Reports和Report Viewer运行时问题

我的问题是,虽然它可以在我的开发机器上正常运行,但应用程序将部署到远程位置的很多机器将不具有用于安装水晶报表或报表查看器的运行时。

因此,如果我使用其中任何一种构建应用程序,并且仅在没有运行时的机器上阻止用户访问报告,那么应用程序可以正常运行,或者我应该期望在安装时发生疯狂错误,例如

任何意见赞赏。

回答

2

实际上,您可以通过Deployment Project或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); 
     } 
+0

同意。良好的部署(例如通过安装程序)是克服此类问题的最佳方式。 – 2010-03-09 03:45:13

+0

好吧,但假设我不部署运行时,并且我阻止用户访问报告,我可以期望应用程序运行没有错误吗? 这是我的问题 – Spooky2010 2010-03-09 06:05:50