汇编寻找newtonsoft.json.dll的错误版本



我的项目使用newtonsoft.json.dll。我添加了DLL作为对我的项目的参考,并使用版本8.0.2

使用

所有内容都在我的PC上起作用,但是当我将所有内容与Newtonsoft.json.dll一起转移到新PC时,我会收到错误

无法加载文件或汇编'newtonsoft.json,版本= 4.0.3.0, culture =中性,publicKeyToken = 30ad4fe6b2a6aeed'或其中之一 依赖性。系统找不到指定的文件。

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

上一个答案将帮助您跟踪问题。当一些引用的库明确指定了它支持的库版本时,就会发生这种情况。幸运的是,您可以在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>

我将在启动项目的bin目录中检查newtonsoft.json的版本。如果newtonsoft.json在那里,它是您期望的版本,则可以使用fuslogvw(https://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.110).aspx)加载程序试图从中获取4.0.3.0版本的位置。这可能会使您了解运行时为什么要寻找其他版本。

希望会有所帮助。

最新更新