使用CR for VS正确配置和分发应用程序

2020-09-24 09:05发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,我使用VS 2013中的V...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我使用VS 2013中的VS的Crystal Reports组件来开发旧版应用程序的新的单独可执行文件,该文件旨在与.NET Framework 3.5一起使用,并与CR合并(MSM)模块一起分发给客户端 。 当前,该项目使用 ADO.Net 数据库连接,并且只能在开发计算机上使用 在app.config中。

问题是:

1.To 与.NET Framework 3.5一起使用,应该分发CR运行时SP20还是我 可以分发SP21? (在CR Wiki中,据说SP21仅对 ADO.NET 支持.NET 4.0+)(< rel =" nofollow" hraf=" https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads" target =" _ blank"> https ://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads )

2。我应该在开发机器(安装了VS CR的地方)上安装适当的运行时吗?

3。 在哪个VS项目中,文件夹应引用的CR模块在客户端计算机上具有可执行文件(在分发CR MSM模块之后)?

详细的答案将不胜感激! 谢谢!

6条回答
huskylover
2020-09-24 09:36

非常感谢戴尔的回答!

我删除了SP21,并在我的开发机上安装了SP20,并用SP 20重新编译了可执行文件。我还在没有安装(默认).NET Framework 3.5的干净(目标)Win7计算机上安装了SP20运行时,并部署了exe。 到那台机器。

重新编译的应用程序在开发机上运行良好,但是当我尝试将报表数据源设置为数据集时,却在目标计算机上抛出了CrystalDecisions.CrystalReports.Engine.DataSourceException。

例外是:

 CrystalDecisions.CrystalReports.Engine.DataSourceException:无法加载数据库信息。
 文件CrystalReportTestDataSource2 1644_3060_ {1108FCDC-369F-4AC0-ABAD-C87AC56673BD} .rpt中的错误:
 加载数据库信息失败。  ---> System.Runtime.InteropServices.COMException(0x800002CD):无法加载数据库信息。
 文件CrystalReportTestDataSource2 1644_3060_ {1108FCDC-369F-4AC0-ABAD-C87AC56673BD} .rpt中的错误:
 加载数据库信息失败。
    在CrystalDecisions.ReportAppServer.Controllers.DatabaseControllerClass.ReplaceConnection处(Object oldConnection,Object newConnection,Object parameterFields,Object crDBOptionUseDefault)
    在CrystalDecisions.CrystalReports.Engine.Table.SetDataSource(Object val,Type type)
    在CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val,Type type)
    ---内部异常堆栈跟踪的结尾---
    在CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
    在CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val,Type type)
    在CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(DataSet dataSet)

 

下面是相关代码(已删除错误处理行)。 所有涉及的文件(.RPT,.XSD和.XML)都在它们的位置,并且代码检查了它们的位置

 ReportDocument crReportDoc = new ReportDocument();
 crReportDoc.Load(reportFileName);
 DataSet ds = new DataSet();
 ds.ReadXmlSchema(xsdFileName); //成功
 ds.ReadXml(xmlFileName,XmlReadMode.InferSchema); //成功
 crReportDoc.SetDataSource(ds); //###抛出DataSourceException(仅在干净的机器上)###
 

任何帮助将不胜感激! (我试图找到答案/解决方案,但未成功)

一周热门 更多>