asp.net - 使用 Crystal Report 引用将 ASP.NET 2005 迁移到 2008 问题

标签 asp.net crystal-reports web-config

ASP.NET网站是使用VS.NET 2005版本开发的,并使用了Crystal Reports。
现在同样想升级到 VS.NET 2008,但它显示如下错误:

Error 469 Could not load file or assembly 'CrystalDecisions.CrystalReports.Engine, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified. C:\Documents and Settings\Administrator\Desktop\SVSS\ssvs10022010123\Web.Config 29

在 web.config 文件中,代码的编写方式与此错误所指的位置相同。

<compilation debug="true">
        <assemblies>
            <add assembly="CrystalDecisions.CrystalReports.Engine, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="CrystalDecisions.ReportSource, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="CrystalDecisions.Shared, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="CrystalDecisions.Enterprise.Framework, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="CrystalDecisions.Enterprise.InfoStore, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies></compilation>

Crystal Reports 已安装(VS2008 默认附带)。我们需要更改引用吗?
请指导我如何解决此问题。

最佳答案

最好的解决方案是在服务器上安装相同的运行时。
无论如何,您可以在 app.config 或 web.config 中使用此 XML:

  <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="CrystalDecisions.CrystalReports.Engine" publicKeyToken="692fbea5521e1304" culture="neutral"/>
        <bindingRedirect oldVersion="xx.x.xxxx.x" newVersion="yy.y.yyyy.y"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="CrystalDecisions.Shared" publicKeyToken="692fbea5521e1304" culture="neutral"/>
        <bindingRedirect oldVersion="xx.x.xxxx.x" newVersion="yy.y.yyyy.y"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="CrystalDecisions.ReportSource" publicKeyToken="692fbea5521e1304" culture="neutral"/>
        <bindingRedirect oldVersion="xx.x.xxxx.x" newVersion="yy.y.yyyy.y"/>
      </dependentAssembly>
      <dependentAssembly>
        ...
    </assemblyBinding>
  </runtime>

其中oldVersion是您用于开发的版本,newVersion是服务器上安装的版本

关于asp.net - 使用 Crystal Report 引用将 ASP.NET 2005 迁移到 2008 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6015381/

相关文章:

asp.net - 网格一次查看行

c# - 如何在Winform中使用CSS格式化 Crystal 报表?

c# - WCF 请求期间出现 CommunicationException,基础连接已关闭

asp.net-mvc-3 - MVC3 和 MVC4 中的 web.config 不同

asp.net - 从代码隐藏中隐藏详细信息查看模板字段

c# - LINQ 比较 2 个表(有点像 SQL 除了?)

c# - 我可以使用什么(也许是设计模式?)来避免这种 ISP 违规行为?使用 Asp.net 底页

asp.net - Crystal Report - 文件存在错误

mysql - 使用mysql数据库的visual basic中的 Crystal 报表无法登录加载报表

yii2 - 如何在 IIS 上正确配置 web.config 以发布 YII2 Advanced