我理解这个问题是如何发生的,而且我确信这是另一个dll,它需要一个旧版本的Microsoft.ReportViewer.WebForms'以及我'猜测' Microsoft.ReportViewer.Common'同样。
在将此标记为重复之前,对这类问题的回答只是说找到有问题的dll并且"处理它"。
我该怎样做才能让违规的dll使用旧的程序集,同时保留现有的程序集?
确切的错误是:
Could not load file or assembly 'Microsoft.ReportViewer.WebForms,
Version=8.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a'
or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
答案 0 :(得分:1)
您不能在项目中使用同一DLL的2个版本。您可能直接在项目中引用DLL的A版本,但另一个引用本身引用了DLL的B版本。在这种情况下,您别无选择,只能使用引用(嵌套引用)删除引用,或者引入嵌套引用要使用的版本并使用 it 。
我发现一件有用的事情是,对于项目引用的属性,我将“特定版本”设置为true
。这将有助于减轻应用程序进入GAC并获得比您想要的更新版本的DLL。