与Newtonsoft.Json的程序集冲突



我需要加载 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>

相关内容

  • 没有找到相关文章

最新更新