Ошибка при использовании Crystal Reports для. net

, я написал программу, которая генерирует PDF-файлы из Crystal Report, а затем отправляет эти PDF-файлы кому-то по электронной почте. Программа отлично работает на моей машине разработки, но когда я копирую каталог bin \ Release на Windows 2000 Server (машину, на которой я хотел бы ее запустить), он начинает работать, а затем генерирует эту ошибку и трассировку стека:

The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception.
   at CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()
   at DailyJobCostSummaryEmail.Program.crptToPDF(String reportFile, String jobNum, String outputLocation) in M:\Projects\DailyJobCostSummaryEmail\DailyJobCostSummaryEmail\Program.cs:line 79
   at DailyJobCostSummaryEmail.Program.Main(String[] args) in M:\Projects\DailyJobCostSummaryEmail\DailyJobCostSummaryEmail\Program.cs:line 46

ОШИБКА ПРОИСХОДИТ ВЕЗДЕ, ЗА ИСКЛЮЧЕНИЕМ ПРИ ЗАПУСКЕ ИЗ ВИЗУАЛЬНОЙ СТУДИИ.

.Net 2.0 установлен на этой машине, и с тех пор я установил CRRedist2005_x86.msi, но без эффекта . Я даже получаю диалоговое окно «Отправить отчет об ошибке в Microsoft», хотя я использую try / catch для вывода исключения в файл. Даже при выполнении блока catch моя программа не закроется должным образом.

static void Main(string[] args)
{
    try
    {
        String dir = @"JobCostReports";
        DataTable jobs = new DataTable();

        using (SqlConnection conn = new SqlConnection(connString))
        {
            String sql = "JC_GetJobsClosedYesterday";
            SqlDataAdapter da = new SqlDataAdapter(sql, conn);
            da.Fill(jobs);
        }

        List<String> files = new List<String>();

        foreach (DataRow row in jobs.Rows)
        {
           files.Add(crptToPDF(@"JobCost.rpt", row["JobNumber"].ToString().TrimEnd(), dir));
        }

        Utilities.sendEmail("[toEmail]",
                            "[FromEmail]",
                            "Job Cost Summaries for Yesterday",
                            "Attached are Job cost summaries for the " + files.Count + " jobs closed yesterday.",
                            files.ToArray());

        Console.WriteLine("Email sent.");
    }
    catch (Exception e)
    {
        using (StreamWriter writer = new StreamWriter("errors.log", true))
        {
            writer.AutoFlush = true;
            Console.WriteLine();
            writer.WriteLine(e.Message);
            writer.WriteLine(e.StackTrace);
        }

        Console.WriteLine(e.Message);
        Console.WriteLine(e.StackTrace);
        Console.Read();
    }
    finally { }
}

public static String crptToPDF(String reportFile, String jobNum, String outputLocation)
{
    using (ReportDocument rpt = new ReportDocument())
    {
        rpt.Load(reportFile);
        rpt.SetParameterValue("@vJobNumber", jobNum);
        String output = outputLocation + @"\" + jobNum + "_JobCostSummary.pdf";
        rpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, output);
        return output;
    }
}

Разве я не включил все правильные ссылки и операторы using? Перепробовал много комбинаций, но никакого эффекта.

6
задан Pradeep 18 March 2011 в 16:33
поделиться