2015-07-26 3 views
0

Тамисключение отчет Кристалл не может быть перехвачено

У меня есть вопрос Crystal Report: Если компонент кристалл отчет не установлен (CrystalDecisions.CrystalReports.Engine.dll не может быть найден) в среде клиента, исключение может не быть пойманным в фрагменте кода 1, но может быть перехвачено во фрагменте кода 2

фрагмент кода 1:

private void button1_Click(object sender, EventArgs e) 
    { 
      try 
      { 
       var rtDocument = new ReportDocument(); 
      } 
      catch (Exception) 
      { 
       //The exception cannot be caught if Crystal report environment is broken or not installed. 
       Console.WriteLine("Exception......"); 
      } 
    } 

фрагмент кода 2:

public class ReportDialog:Form 
{ 
    public ReportDialog() 
    { 
     var a = new ReportDocument(); 
     Console.WriteLine("ReportDocument OK"); 
    } 
} 
    private void button1_Click(object sender, EventArgs e) 
    { 
      try 
      { 
       var d = new ReportDialog(); 
      } 
      catch (Exception) 
      { 
       //The exception can be caught if crystal report component is broken or not installed 

       Console.WriteLine("Exception......"); 
      } 
    } 

Вопрос: Я хочу знать, как поймать исключение в фрагменте кода 1

+0

Вопрос в том, что я хочу знать, как поймать исключение в фрагменте кода 1 –

ответ

0

Вы должны маркировать CrystalDecisions.CrystalReports.Engine на «Copy Local» при развертывании приложения, так что ссылки будут установлены ваше приложение.

+0

спасибо за ваш ответ. На самом деле мы сделали отчет о кристалле в инсталляционном пакете нашего продукта. Проблема, которую мне нужно решить, - убедиться, что приложение работает хорошо, но дать сообщение пользователю, когда компонент CR сломан или не установлен, но не сбой. –