我们有一个用 .NET 4.0 编写的应用程序,它使用这个 SAP Crystal Reports。虽然相同的构建(x86)在安装了 .NET 4.0 框架(x86)和 CrystalReports 运行时(从 SAP 页面http://scn.sap.com/下载)的 Windows 2003/2008(x86/x64)中运行良好docs/DOC-7824 ) 使用 13.0.1.x (32bit_13_0_1.msi)。
当在 MS 2012 服务器 (x64) 中安装相同的东西时,已经预装了 .NET framework 4.5,因此我无法安装 .NET 4.0,但它看起来是向后兼容的,因为应用程序工作正常, 除了 Crystal Reports 部分,应用程序会在该部分引发异常。
无法加载文件或程序集“CrystalDecisions.CrystalReports.Engine,版本 10.5.3700.0,culture=neutral,PublicKeyToken=blahblah”或其依赖项之一。该系统找不到指定的文件。
当然,运行时已安装,但由于某种原因,我们的应用程序无法识别这些 DLL。我个人认为这不是构建问题,因为它在 2003/2008 服务器中使用相同的配置正常工作。
我们只安装了发布版本,因此没有可用的调试选项,也没有安装 VS。
基本上,如果应用程序在 2012 服务器中正常运行,我们只是执行一些测试,但这个问题似乎无法解决。我在谷歌上花了几个小时无济于事。所以任何想法检查什么都非常感谢:)
谢谢托马斯
编辑
解决方案:安装较旧的 2008 运行时。
根本原因:在我们的构建机器上,我们仍然安装了两个运行时(我们也需要支持旧版本)。在proj文件中,CR 程序集不是特定于版本的引用,只是通过名称引用。因此,在构建过程中,使用了来自 GAC 的第一个最低匹配程序集,因此还需要安装 CR 2008。解决方案是也按版本引用项目文件中的第 3 方程序集,以强制使用较新的程序集。