【问题标题】:Different versions of Crystal Reports runtime不同版本的 Crystal Reports 运行时
【发布时间】:2018-06-04 06:32:49
【问题描述】:

我有两个使用 CR 运行时生成报告的 WinForm 应用程序。安装 CR 运行时 13.20 时,较新的应用程序会抱怨它找不到和加载 CR 13.21 (13.0.350) 程序集。如果我将 CR 运行时升级到 13.21 (13.0.350),那么新应用程序将正常工作,但较旧的应用程序会出错,并指出它无法找到并加载 CR 运行时程序集 13.20 (13.0.200)。 所有工作站都在 CR 运行时 13.20 上运行,那么如何使在 VS2015 中使用 CR 13.21 环境创建的新应用程序在旧的 CR 运行时上正常运行?

【问题讨论】:

  • 检查两个项目中对 CrystalObjects 的引用的版本。我怀疑每个项目都引用了不同的版本。如果是这种情况,那么更新两个项目中的引用以使用相同的版本应该可以解决问题。

标签: c# .net winforms crystal-reports


【解决方案1】:

首先,从您的旧应用程序中删除 CR 运行时引用并添加对 CR 13.21 的引用,它将起作用。

【讨论】:

    【解决方案2】:

    我有同样的问题。客户端机器的应用程序使用 13.0.20,而我的应用程序使用 13.0.21。我确实为 13.0.21 设置了参考。但我们遇到的问题是来自 13.0.21 的 SAP 安装程序迫使我们从客户端工作站中删除 13.0.20。因此,所有其他应用程序都抛出了未找到组装的错误。

    有没有办法同时安装20和21?

    【讨论】:

      【解决方案3】:

      您需要升级引擎以匹配您拥有的最新版本。例如在我的情况下。我的引擎在 13.2 上运行,我拥有的最新 .dll 文件是 13.5,因此使用 Nuget 控制台,您可以直接从 Visual Studio 升级引擎(例如 Install-Package CrystalReports.Engine -Version 13.0.3500)

      【讨论】:

        【解决方案4】:

        您可以告诉您的“旧水晶运行时应用”使用新的水晶报表运行时。您所要做的就是在您的 app.config 文件中创建 AssemblyBindings:

            <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
                  <dependentAssembly>
                    <assemblyIdentity name="CrystalDecisions.Shared" publicKeyToken="692fbea5521e1304" culture="neutral" />
                    <bindingRedirect oldVersion="0.0.0.0-13.0.3500.0" newVersion="13.0.3500.0" />
                  </dependentAssembly>
                  [...]
            </assemblyBinding>
        

        【讨论】:

          【解决方案5】:

          您可以使用配置文件重定向旧应用程序以使用较新的运行时。 使用记事本在旧应用(使用旧版 Crystal 运行时)所在的文件夹中创建一个文件名 your_old_app_exe_name.exe.config

          <?xml version="1.0" encoding="utf-8"?>
          <configuration>
          <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
          <runtime>
            <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.CrystalReports.Engine" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportSource" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>    
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.Shared" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.Web" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.Windows.Forms" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportAppServer.ClientDoc" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportAppServer.CommonControls" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportAppServer.CommonObjectModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportAppServer.Controllers" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportAppServer.CubeDefModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportAppServer.DataDefModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportAppServer.DataSetConversion" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>    
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportAppServer.ObjectFactory" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportAppServer.Prompting" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportAppServer.ReportDefModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
              <dependentAssembly>
                <assemblyIdentity name="CrystalDecisions.ReportAppServer.XmlSerialize" publicKeyToken="692fbea5521e1304" culture="neutral"/>
                <bindingRedirect oldVersion="13.0.2000.0" newVersion="13.0.3500.0"/>
              </dependentAssembly>
            </assemblyBinding>  
          </runtime>
          </configuration>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-12-20
            • 1970-01-01
            相关资源
            最近更新 更多