gpt4 book ai didi

.net-4.0 - 无法加载文件或程序集 'CrystalDecisions.CrystalReports.Engine'/Windows 2012 服务器

转载 作者:行者123 更新时间:2023-12-04 14:46:38 25 4
gpt4 key购买 nike

我们有一个用 .NET 4.0 编写的应用程序,它使用这个 SAP Crystal Reports。虽然相同的构建 (x86) 在安装了 .NET 4.0 框架 (x86) 和 CrystalReports 运行时(从 SAP 页面 http://scn.sap.com/docs/DOC-7824 下载)的 Windows 2003/2008(x86/x64)中运行良好,但使用 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 方程序集以强制使用较新的程序集。

最佳答案

我们遇到了同样的问题,但是在我们的项目中指定了版本。我们的项目也没有强命名。强命名程序集将使这不是问题。

.csproj 之前

<Reference Include="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\..\Workspace\SharedLibraries\trunk\Lib\CrystalDecisions.ReportSource.dll</HintPath>
</Reference>

请注意,SpecificVersion 设置为 false。将其转换为解决问题的真正力量,我们没有尝试。

提示路径要么未找到,要么是旧版本。如果没有找到,它将获取在 GAC 中找到的第一个 Crystal dll,即 10.5 版本。

.csproj 之后
<Reference Include="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, processorArchitecture=MSIL" />

这会强制针对正确版本进行构建。

关于.net-4.0 - 无法加载文件或程序集 'CrystalDecisions.CrystalReports.Engine'/Windows 2012 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16565326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com