无法弄清楚缺少哪些库

时间:2018-06-15 14:04:18

标签: c# .net crystal-reports

我有一个包含Crystal Reports的应用程序。它存在无法在某些计算机上运行的问题。我有一段时间没有遇到过这个问题,所以我试着安装我记得的所有需要​​的东西。

首先,我创建了一个空的Crystal Report的简单控制台应用程序,它只是实例化报告并在EXE旁边导出为PDF。就像这样,它的测试速度要快得多。我把try catch和写入文本文件的错误的堆栈跟踪,以便我可以快速调试。

把它放在我的电脑上它工作正常。将它复制到一台无法正常工作的计算机上并尝试了它,但找不到资源。所以我安装了我需要的最新Crystal Runtime,它是13_0_22 64位。

再次把它弄错了:

  

找不到方法:   “CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag   CrystalDecisions.ReportAppServer.ReportDefModel.ISCRExportOptions.get_ExportOptionsEx()'

然后我记得Crystal Report无法在Any CPU上运行,并且您必须指定一个平台。将我的控制台项目重新编译为x64,现在我遇到了以下错误:

  

该文件尚未开启。在   CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.set_ReportAppServer(字符串   pbsVal)

现在我确定计算机有.net 3.5,.net 4.7和Microsoft Visual C ++ 2012(因为我知道这是Crystal的要求)。

我还需要安装其他任何其他东西吗?

我已经重新安装了Crystal运行时,认为它可能是它,但它仍然无效。

这是我使用的代码,以防有人不知道我的意思是简单的水晶报告代码:

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;
using System.Data;
using System.Diagnostics;
using System.IO;


namespace ConsoleApplication1678
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {              
                var report = new CrystalReport1();               

                if (File.Exists("rpt.pdf"))
                {
                    File.Delete("rpt.pdf");
                }
                report.ExportToDisk(ExportFormatType.PortableDocFormat, "rpt.pdf");

                Process.Start("rpt.pdf");
            }
            catch (Exception ex)
            {
                var error = ex.Message + "\n\n" + ex.StackTrace;
                File.WriteAllText("error.txt", error);               
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

直接从SAP获得我的答案。简短版本,我需要使用最新版本,并告诉所有客户给我他们使用的所有使用Crystal的软件的列表,以便我可以致电这些公司并使其升级到最新版本,因为您不能在Windows 2000上安装2个版本。同时它们都必须使用相同的位格式。

我的应用程序必须运行64位,因为我们使用了超过20 GB的ram,因此我需要致电所有其他应用程序供应商,以使其应用程序成为64位编译版本,因为安装最新版本会使他们的所有程序均失败。