【问题标题】:Crystal Reports runtime problem in Visual Studio 2019Visual Studio 2019 中的 Crystal Reports 运行时问题
【发布时间】:2021-05-21 22:23:15
【问题描述】:

我在 Visual Studio 2019 中有一个 .NET Framework 4.5 项目(C# 语言)。 我正在尝试使用 Crystal Reports。

当我写 ReportDocument r = new ReportDocument(); 时抛出这个异常:

Could not load file or assembly 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Impossibile trovare il file specificato.

我该如何解决?

【问题讨论】:

    标签: crystal-reports


    【解决方案1】:

    尝试将其添加到您的 App.config 文件中:

    <startup useLegacyV2RuntimeActivationPolicy="true">
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
    

    过去,“Crystal Reports for .NET Framework 4.0”用于针对 2.0 CLR,无论出于何种原因。他们已在以后的版本中修复了此问题,但可能与您的问题有关。您还需要验证是否已安装 .NET Framework 4.x(我假设您已安装)。您还可以仔细检查您的项目是否引用了System.Windows.Forms,如果没有,请尝试添加一个,看看是否有帮助。

    如果这些都不起作用,请考虑从 SAP 为您正在使用的 Crystal Reports 版本安装最新的服务包。我使用的 Crystal 版本在 SP 30 上。这些库现在实际上以 4.x 框架为目标。我不知道您使用的版本,所以我无法提供直接链接,但您应该可以在 SAP 的网站上搜索它。

    【讨论】:

    • 我应该在哪里添加该代码?我没有 App.config 文件...
    • 我的解决方案由一个 .NET core 3.1 API 项目和一个 .NET Framework 4.5 类库组成。报告在类库中
    • app.config 设置不适用于 .NET Core。 Crystal Reports 不支持 .NET Core,这将是一大障碍。为了共享代码,库需要是 .NET Standard(即使它在编译时没有抱怨也会导致调用 Windows.Forms 失败)。这意味着您可能不得不退回到不那么传统和更脆弱的方法。如果它是一个网站,您可以推出第二个在经典 .NET 框架上运行的 API 站点并从您的库中调用它。每个选项都将涉及操纵某种类型的互操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多