2014-04-24 55 views
9

当我们安装了以前版本通过的NuGet的Neo4jClient我们看到Newtonsoft.Json版本4.5.0.0安装作为一个依赖。我们还使用其他需要Newtonsoft.Json版本6.0.0.0的软件包,当我们安装它们时,它将覆盖版本4.5.0.0。未能加载文件或程序集“Newtonsoft.Json.Net”(异常来自HRESULT:0x80131040)

当我们开始我们的应用程序,我们得到这个错误:

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) 

审视我们所有的configs,没有发现任何引用版本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?

UPDATE 我们已经尝试

  1. 删除所有软件包并重新安装
  2. 清理和重建解决方案
  3. 大会重定向
  4. 试图寻找<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>但不是在的.csproj
+0

是否找到大会本身?所以尝试将程序集设置为:Copy local:true。 –

+0

@Mitulátbáti默认情况下,'Copy Local'设置为'true' –

+1

默认情况下,AutoGenerateBindingRedirects不存在,您可以将它添加到csproj文件 –

回答

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> 
+0

是的,有趣的是,我在解决方案中有两个项目。一个是代码,另一个是测试。测试添加了一个'app.config',主项目只有一个'packages.config',它不包含''。 –

+0

然后尝试手动添加app.config/web.config文件并在其中粘贴重定向? – ChrFin

+0

虽然这可能是我的案例的答案,但它没有解释为什么?为什么我需要做绑定重定向voodoo?我会尝试,现在... – Mzn

相关问题