程序集正在寻找Newtonsoft.Json.dll的错误版本

时间:2016-12-05 16:54:54

标签: c# .net reference json.net assemblies

我的项目正在使用Newtonsoft.Json.dll。 我已将dll添加为我的项目的参考,并使用版本8.0.2

一切都在我的电脑上工作但是当我将所有内容与Newtonsoft.Json.dll一起转移到新电脑时出现错误

  

无法加载文件或程序集' Newtonsoft.Json,Version = 4.0.3.0,   Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其中一个   依赖。系统找不到指定的文件。

我没有在任何地方引用该版本,我的app.config中没有任何内容指定此内容。

2 个答案:

答案 0 :(得分:3)

上一个答案将帮助您追踪问题。当某些引用的库明确指定它支持的库版本时,就会发生这种情况。幸运的是,您可以在app.config中覆盖绑定(请参阅下面的示例):

<configuration>
  <!--YOUR 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-8.0.0.0" newVersion="8.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

答案 1 :(得分:0)

我会在启动项目的bin目录中检查Newtonsoft.Json的版本。如果Newtonsoft.Json在那里并且它是您期望的版本,那么您可以使用Fuslogvw(https://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.110).aspx)来查看加载器尝试从中获取4.0.3.0版本的位置。这可能会让您深入了解运行时为什么要寻找不同的版本。

希望有所帮助。