当我们通过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后我们发现了这个。
这是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还是问题出现在其他地方?
更新 我们尝试了什么
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
,但不在.csproj 答案 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>