这是错误(在指出询问/回答了多少次之前读取了一下之后的位数!)
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0433: The type 'CrystalDecisions.Web.CrystalReportViewer' exists in both 'c:\WINDOWS\assembly\GAC\CrystalDecisions.Web\9.1.3300.0__692fbea5521e1304\CrystalDecisions.Web.dll' and 'c:\WINDOWS\assembly\GAC_MSIL\CrystalDecisions.Web\13.0.2000.0__692fbea5521e1304\CrystalDecisions.Web.dll'
---
Source File: c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\dev_worksordersreporting\3b24818a\20239033\App_Web_bylocation.aspx.cdcab7d2.ijxcitnu.0.cs Line: 905
这里有很多这些问题(这是closest),一般的解决方案似乎是从GAC中删除旧版本。我的情况是我们的appserver上有多个版本,并且目前有多个应用程序正在使用不同的版本正常运行。我找到了一个引用13.0.2的最新应用程序的源代码,它是以标准方式执行的(在bin中没有本地副本)。
那么为什么那个工作而我的呢?从GAC中删除旧版本不是一种选择,因为它们正在使用中。
更新:来自Steven V的评论提到了应用级别的程序集重定向。工作应用程序正在使用它,所以我添加到我的但仍然是同样的错误。它看起来应该有效,所以它仍然可以解决这个问题,我做错了。这是我缺少的工作web.config文件中的部分(在配置下):
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="CrystalDecisions.Web" culture="" publicKeyToken="692FBEA5521E1304" />
<bindingRedirect oldVersion="9.1.3300.0" newVersion="13.0.2000.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
所以我想现在的问题是:为什么程序集重定向不起作用?
答案 0 :(得分:0)
这实际上有点分为2个问题,冲突的程序集版本的原始解决方法,然后是程序集重定向的问题不起作用。 因为看起来汇编重定向是原始问题的答案(正如Steven V在评论中指出的那样),我将问题标记为已回答并打开另一个问题,说明为什么程序集重定向的实现不起作用。
感谢Steven V在正确的方向上推动我。