我需要加载 2 个版本的程序集 Newtonsoft.Json 版本 4.0.8.0 和 4.5.0.0。我当前的配置文件:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.0.8.0" />
</dependentAssembly>
但它必须是:旧的 4.0.8.0 和新的 4.5.0.0
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.5.0.0" />
</dependentAssembly>
我从包控制台安装了Newtonsoft - 最新版本 - 但它给了我一个错误:
错误 80 无法加载文件或程序集"Newtonsoft.json,版本=4.5.0.0,区域性=中性,公钥令牌=30ad4fe6b2a6aeed"或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的例外情况:0x80131040)**
我今天遇到了这个问题,我在这个链接中找到了解决方案。
基本上更新Newtonsoft.json包。并在 web.config 中注册此程序集
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.8"/>
</dependentAssembly>
将 SignalR 安装到我的项目后,我遇到了同样的问题。首先,我更新到最新版本的Newtonsoft.Json,然后将dependentAssembly添加到我的web.config中。但是我不得不将 6.0.0.0 的值放在新版本中,即使在我的软件包中我声明了版本 6.0.8。
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="6.0.0.0"/>
</dependentAssembly>