点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我有一个带有Crystal Reports的应用程序。 它存在无法在某些计算机上运行的问题。 我有一段时间没有这个问题了,所以我尝试安装所有我记得需要的东西。
首先,我制作了一个简单的控制台应用程序,该应用程序具有一个空的 Crystal Report
,它所做的就是实例化该报告并导出到EXE旁边的PDF。 这样,测试起来要快得多。 我试了一下然后将错误的堆栈跟踪信息写入文本文件,以便快速调试。
在我的计算机上运行它可以正常工作。 将其复制到无法正常工作的计算机上,然后尝试使用它,但找不到资源。 我尝试使用13_0_15进行开发,但无法正常工作。 所以我安装了最新的Crystal Runtime,它是13_0_22 64位。
再次运行该错误:
找不到方法:" CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag CrystalDecisions.ReportAppServer.ReportDefModel.ISCRExportOptions.get_ExportOptionsEx()"
然后,我记得 Crystal Report
不能在任何CPU
上运行,并且您必须指定一个平台。 将我的Console项目重新编译为 x64
,现在我陷入了以下错误:
文档尚未打开。 在CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.set_ReportAppServer(String pbsVal)
现在,我确保计算机具有.net 3.5,.net 4.7和Microsoft Visual C ++ 2012(据我所知,这是Crystal的要求)。
还有其他我可能需要安装的东西吗?
我已经重新安装了Crystal运行时,以为可能是这样,但仍然无法正常工作。
这是我使用的代码,以防有人不了解简单水晶报表代码的含义:
使用CrystalDecisions.CrystalReports.Engine; 使用CrystalDecisions.Shared; 使用系统; 使用System.Data; 使用System.Diagnostics; 使用System.IO; 命名空间ConsoleApplication1678 { 班级计划 { 静态void Main(string [] args) { 尝试 { var report = newCrystalReport1(); if(File.Exists(" rpt.pdf")) { File.Delete(" rpt.pdf"); } report.ExportToDisk(ExportFormatType.PortableDocFormat," rpt.pdf"); Process.Start(" rpt.pdf"); } 抓住(例外) { var错误= ex.Message +" \ n \ n" + ex.StackTrace; File.WriteAllText(" error.txt",error); } } } }
编辑:
创建了一个与上述项目非常相似的全新项目。 唯一的区别是,我向报表添加了数据源并添加了几个字段。 在我的PC上,它运行完美。 在任何非开发人员的PC上,它都无法正常工作,并且仍然出现错误:
找不到方法:" CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag CrystalDecisions.ReportAppServer.ReportDefModel.ISCRExportOptions.get_ExportOptionsEx()"
现在我已经在所有PC上安装了VC ++ Redist 2015,但仍然无法使用。 然后我注意到我在任何CPU上,我都切换到x86并尝试过,但错误仍然存在。 然后,我用x64重建了,它突然起作用了。 全部不工作的PC都具有Crystal Report和VC ++ Redist的x86和x64,这是为什么? Crystal Report不再可用为32位吗? 这是一个很大的问题,因为如果我的应用程序不是x86,我有4个第三方DLL无法正常工作
编辑:
这是两种模式下使用的dll的2张图片
这是32位:
这是64位:
(81.2 kB)
使用Google搜索此KBA 2719939。
介绍如何混合SP版本。
是,否。 可以作为x64使用,不能作为AnyCPU或x86使用
尝试一下,
创建一个新的VS C#项目。
从Project目录中选择"报告"和Crystal Reports应用程序:
出现报告向导,然后单击"完成"。
运行应用程序,行得通吗?
Don
我尝试安装CRRuntime_32bit_13_0_22.msi,但它说它已经安装了。 我在这些计算机上安装的全部是CRRuntime_64bit_13_0_22.msi。
我都有两种应用程序类型。 有些是32位,有些是64位。 64位之一是因为该应用程序使用了超过12 gb的ram(带有CAD部件的3d引擎,请参见solidworks)。 32位是因为我们有第三方库,该库仅在项目编译类型为32位时才起作用。 我需要两者。
然后回到基础知识。 您是否在DEV PC上安装了EXE,而不在任何MSI上安装了EXE? 下载页面上的黄色按钮。
右键单击EXE,然后选择"以管理员身份运行"
我所建议的是正在使用所有这些程序的用户需要与每个制造商联系,并要求他们升级到同一制造商。 版本。
X86和X64可以在同一台PC上,但是只能有一个版本。
Don
好,正如我提到的,我们的运行时是针对您的平台而不是OS。 如果您使用32位编译,则请卸载64位MSI并安装32位MSI。
一周热门 更多>