不同的发布分支引用了不同版本的CR for VS(13.0.x)的程序集

2020-09-22 07:39发布

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

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


亲爱的

与我们的团队一起,我们正在开发一种软​​件,该软件的年度发行​​版。 在该程序内部,我们使用了几个(大约110个)Crystal Reports 2008报表,这些报表通过数据集填充了数据。 在过去的7个版本中,我们将Crystal Reports运行时v13.0与SP一起使用:

  • v6.0使用的是CR运行时v13.0 SP3
  • v6.1,v6.1.1和v6.2使用CR运行时v13.0 SP9
  • v6.3,v6.4和v6.5使用CR运行时v13.0 SP16

我们已将某些CR程序集放入源代码控制系统中,并从该位置引用了它们:

  • CrystalDecisions.CrystalReports.Engine.dll
  • CrystalDecisions.ReportAppServer.ClientDoc.dll
  • CrystalDecisions.ReportAppServer.Controllers.dll
  • CrystalDecisions.ReportAppServer.ReportDefModel.dll
  • CrystalDecisions.ReportSource.dll
  • CrystalDecisions.Shared.dll
  • CrystalDecisions.Windows.Forms.dll

因此,在我们的开发机器上,我们正在使用CR运行时v13.0 SP16。 通过此设置,我们可以在本地开发/运行/调试所有发行版本。

对于我们的下一个版本,由于要迁移到VS2017和.NET 4.7,我们希望使用CR运行时13.0 SP22。 我当时在想我们可以在这里使用相同的环境设置:安装运行时CR 13.0 SP22,获取这些CR程序集的副本,将其放入源代码管理中,然后从该位置引用它们。

这适用于我们的新发行版分支,但是较旧的分支不再起作用,抛出此执行:

System.Exception:" CrystalDecisions.CrystalReports.Engine.ReportDocument"的类型初始值设定项引发了异常。 ---> System.TypeInitializationException:" CrystalDecisions.CrystalReports.Engine.ReportDocument"的类型初始值设定项引发了异常。 ---> System.IO.FileNotFoundException:无法加载文件或程序集" CrystalDecisions.ReportAppServer.CommLayer,版本= 13.0.2000.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304"或其依赖项之一。 系统找不到指定的文件。

在CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor()

因此,从SP16到SP22引入了重大变化,导致在以我们迄今为止一直使用的方式工作时出错。

如何克服这个问题? 我们如何才能实现分别使用自己的CR运行时版本来支持(开发/运行/调试)多个发行分支?

不胜感激...

亲切的问候,

Wim Brosens

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

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


亲爱的

与我们的团队一起,我们正在开发一种软​​件,该软件的年度发行​​版。 在该程序内部,我们使用了几个(大约110个)Crystal Reports 2008报表,这些报表通过数据集填充了数据。 在过去的7个版本中,我们将Crystal Reports运行时v13.0与SP一起使用:

  • v6.0使用的是CR运行时v13.0 SP3
  • v6.1,v6.1.1和v6.2使用CR运行时v13.0 SP9
  • v6.3,v6.4和v6.5使用CR运行时v13.0 SP16

我们已将某些CR程序集放入源代码控制系统中,并从该位置引用了它们:

  • CrystalDecisions.CrystalReports.Engine.dll
  • CrystalDecisions.ReportAppServer.ClientDoc.dll
  • CrystalDecisions.ReportAppServer.Controllers.dll
  • CrystalDecisions.ReportAppServer.ReportDefModel.dll
  • CrystalDecisions.ReportSource.dll
  • CrystalDecisions.Shared.dll
  • CrystalDecisions.Windows.Forms.dll

因此,在我们的开发机器上,我们正在使用CR运行时v13.0 SP16。 通过此设置,我们可以在本地开发/运行/调试所有发行版本。

对于我们的下一个版本,由于要迁移到VS2017和.NET 4.7,我们希望使用CR运行时13.0 SP22。 我当时在想我们可以在这里使用相同的环境设置:安装运行时CR 13.0 SP22,获取这些CR程序集的副本,将其放入源代码管理中,然后从该位置引用它们。

这适用于我们的新发行版分支,但是较旧的分支不再起作用,抛出此执行:

System.Exception:" CrystalDecisions.CrystalReports.Engine.ReportDocument"的类型初始值设定项引发了异常。 ---> System.TypeInitializationException:" CrystalDecisions.CrystalReports.Engine.ReportDocument"的类型初始值设定项引发了异常。 ---> System.IO.FileNotFoundException:无法加载文件或程序集" CrystalDecisions.ReportAppServer.CommLayer,版本= 13.0.2000.0,Culture = neutral,PublicKeyToken = 692fbea5521e1304"或其依赖项之一。 系统找不到指定的文件。

在CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor()

因此,从SP16到SP22引入了重大变化,导致在以我们迄今为止一直使用的方式工作时出错。

如何克服这个问题? 我们如何才能实现分别使用自己的CR运行时版本来支持(开发/运行/调试)多个发行分支?

不胜感激...

亲切的问候,

Wim Brosens

付费偷看设置
发送
3条回答
大道至简
1楼 · 2020-09-22 07:55.采纳回答

阅读下载页面,其中附带一个XML文件,该文件将允许用户仍然使用较早的运行时。

半个程序猿
2楼-- · 2020-09-22 07:53

您好,Wim,

阅读有关下载的WIKI SP 21的所有信息:

https: //wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

将平台更改为3500个程序集(3.5框架)。 您将无法在源代码管理中同时拥有这两个版本。

Don

Baoming ROSE
3楼-- · 2020-09-22 07:52

因此,如果我正确理解了这一点,我需要复制我们所有的开发-,构建-,测试-,演示和咨询机器,并使用当前的机器 支持SP20或更低版本的Crystal Reports 13运行时,以及SP21或更高版本的Crystal Reports 13运行时的新功能。

太可惜了。 这要付出巨大的代价,而这并不是我一直在寻找的答案...

真的没有其他方法可以做到这一点吗?

Wim

一周热门 更多>