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

2020-09-22 07:39发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的 与我们的团队一起...

         点击此处--->   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