代码之家  ›  专栏  ›  技术社区  ›  Franck

无法找出缺少的库

  •  1
  • Franck  · 技术社区  · 7 年前

    我有一个水晶报告的应用程序。它在某些计算机上不运行时会出现问题。我已经有一段时间没有这个问题了,所以我试着安装所有我记得我需要的。

    首先,我制作了一个简单的控制台应用程序,它有一个空的 Crystal Report 它所做的只是实例化报表并导出到EXE旁边的PDF文件。这样测试要快得多。我放置了一个try-catch,并将错误的堆栈跟踪写入文本文件,以便快速调试。

    在我的电脑上运行的很好。把它复制到一台无法正常工作的计算机上,然后尝试,但找不到资源。所以我安装了最新的Crystal运行时,我需要13_0_22 64位。

    再次运行时出错:

    找不到方法: “CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag” crystaldecisions.reportappserver.reportdefmodel.iscrexportoptions.get_exportoptionsex()'

    然后我想起了 水晶报告 无法运行 Any CPU 你必须指定一个平台。将我的控制台项目重新编译为 x64 现在我陷入了以下错误:

    文档尚未打开。在 crystaldecisions.reportappserver.clientdoc.reportclientdocumentclass.set_reportappserver(字符串 PBSVAL)

    现在我确定计算机有.NET 3.5,.NET 4.7和微软Visual C++ 2012(我知道这是对水晶的要求)。

    还有什么我需要安装的吗?

    我已经重新安装了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 回复  |  直到 7 年前
        1
  •  0
  •   Franck    7 年前

    直接从SAP得到我的答案。短版本我需要使用最新版本,并告诉我的所有客户给我所有的软件列表,他们使用水晶,所以我可以打电话给这些公司,让他们升级到最新版本,因为你不能有两个版本同时安装,他们都需要相同的位格式。

    我的应用程序必须运行64位,因为我们使用超过20 GB的RAM,所以我需要调用所有其他应用程序供应商,使他们的应用程序64位编译版本,因为通过安装最新的使他们的所有程序失败。