引用 Microsoft.ReportViewer.WebForms

Referencing Microsoft.ReportViewer.WebForms

我在我的 MVC 项目中引用了这些程序集 Microsoft.ReportViewer.WebForms Microsoft.ReportViewer.Common

版本是 11.0 但我将其设置为 SpecificVersion = False 和 CopyLocal = False

但在部署时,我不断收到此错误:

无法加载文件或程序集'Microsoft.ReportViewer.WebForms,版本=11.0.0.0,

GAC 中的可用版本是 10.0 和 12.0,但我认为它应该简单地加载这个(希望是 12.0,因为它是最新版本),因为我将 CopyLocal 设置为 false。我在这里做错了什么?是否有最佳实践,因为我们真的不知道客户在他们的 GAC 中有什么版本,但我们希望支持这两个版本。

SpecificVersion = False 只是对编译器的提示。编译后,您的项目将绑定到该程序集的特定版本。

由于不同的程序集版本可能存在差异且彼此不兼容,因此仅选择任何可用版本是不安全的。

解决方案:

  • 仅支持一个 ReportViewer 版本
  • 不同的 ReportViewer 版本有不同的项目
  • 使用reflection
  • 使用binding redirects