无法加载文件或程序集“Newtonsoft.Json.Net”(HRESULT的异常:0x80131040)

时间:2014-04-24 12:56:42

标签: c# json.net neo4jclient

当我们通过nuget安装了以前版本的Neo4jClient时,我们看到Newtonsoft.Json版本4.5.0.0作为依赖项安装。我们还使用需要版本6.0.0.0的Newtonsoft.Json的其他软件包,当我们安装它们时,它会覆盖版本4.5.0.0。

当我们启动应用时,我们会收到此错误:

Unhandled Exception: System.ServiceModel.FaultException`1[System.ServiceModel.Ex
ceptionDetail]: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.
0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies.
The located assembly's manifest definition does not match the assembly referenc
e. (Exception from HRESULT: 0x80131040)

我们查看了所有配置,发现没有引用版本4.5.0.0,但是仔细看了一下Neo4jClient后我们发现了这个。

using ildasm.exe from visual studion tools

这是packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="AzureStorageClient" version="0.0.5.1829" targetFramework="net45" />
  <package id="CouchbaseNetClient" version="1.3.4" targetFramework="net45" />
  <package id="Elasticsearch.Net" version="1.0.0-beta1" targetFramework="net45" />
  <package id="Microsoft.Bcl" version="1.1.8" targetFramework="net45" />
  <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net45" />
  <package id="Microsoft.Net.Http" version="2.2.20" targetFramework="net45" />
  <package id="Neo4jClient" version="1.0.0.652" targetFramework="net45" />
  <package id="NEST" version="1.0.0-beta1" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="6.0.2" targetFramework="net45" />
</packages>

我们删除了所有包裹,重新安装,清理和重建但无济于事。 这是导致这种情况发生的Neo4jClient还是问题出现在其他地方?

更新 我们尝试了什么

  1. 删除所有软件包并重新安装
  2. 清理并重建解决方案
  3. 装配重定向
  4. 尝试寻找<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>,但不在.csproj

1 个答案:

答案 0 :(得分:11)

您是否尝试过通过app.config / web.config进行程序集版本重定向?

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>