2010-03-09 155 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