我们有一个工作应用程序,ASP.NET Web表单,它使用Crystal Reports运行时并在嵌入式打印预览窗口中显示报表。它部署在Windows 2012服务器上,适用于CR Runtime v13.0.18及更低版本。
今天我们安装了最新的Crystal Reports运行时版本13.0.21.2533(从http://www.crystalreports.com/crvs/confirm/下载),打印预览窗口现在引发了这个错误:
分析器错误 说明:解析为此请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息并相应地修改源文件。
分析程序错误消息:无法加载类型' MyApp.printPreview1'。
来源错误:
第1行:<%@ Control Language =" vb" AutoEventWireup ="假" 代码隐藏=" printPreview.ascx.vb"继承=" MyApp.printPreview1" 的EnableViewState ="真" %GT;第2行:<%@注册 Assembly =" CrystalDecisions.Web,Version = 13.0.2000.0,Culture = neutral, 公钥= 692fbea5521e1304"命名空间=" CrystalDecisions.Web" 的TagPrefix =" CR" %GT;第3行:源文件: /MyApp/printPreview.ascx行:1
回滚到v..21之前的任何版本似乎工作正常,但这些旧版本已从SAP / Crystal网站上消失,迫使我们使用运行时v..21。
这是一个重大变化,使我们的应用程序中的所有报告都无法运行。
答案 0 :(得分:2)
在此处查看有关此更新的Crystal网站后:
https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads
具体做法是:
以下项目应突出显示SP21:
...
- 由于大多数CR / RAS .NET程序集现已从13.0.2000.0重新版本化为13.0.3500.0,因此用户必须从参考列表中删除所有旧CR程序集并添加新版本的CR程序集,然后 重建申请。
醇>
一个。对于那些没有的客户/用户 想要重建他们的应用程序,有使用的解决方法 app.config / web.config中的<dependentAssembly>
,请参阅附件。
我看来你必须a)在web.config中更改你对13.0.3500.0的版本引用,b)在Visual Studio中重建你的应用程序。
对于我们来说,这不是一个真正实用的选择,因为我们有几个就地安装会立即中断,并且使用正在进行的实时应用程序进行重建并不简单。
相反,我们选择使用点&#34; 4.a&#34;中列出的dependentAssembly方法。以上。基本上我们所做的就是编辑web.config添加这个块:
<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>
标记上方,保存,并且打印预览窗口开始工作。一个很好的解决方法,直到我们推出一个内置正确引用的新版本。