System.IO.FileNotFoundException:'无法加载文件或程序集'Newtonsoft.Json,版本= 12.0.0.0,

时间:2019-12-05 09:20:39

标签: c#

这是我得到的错误:

  

System.IO.FileNotFoundException:'无法加载文件或程序集'Newtonsoft.Json,版本= 12.0.0.0,区域性=中性,PublicKeyToken = 30ad4fe6b2a6aeed'。系统找不到指定的文件。'

这是我在CS项目中拥有的东西:

<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
  <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>

路径似乎正确。

我试图找到其他解决方案,例如将程序包重新安装到早期版本,并将app.config修改为此:

    <?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
    </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.3.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

什么都没做。

7 个答案:

答案 0 :(得分:1)

对于我来说,我已经通过Nuget软件包安装了V 12.0.0.3 ,并且遇到了相同的错误。根据我自己的经验。 NewtonSoft 的某些版本对Visual Studio的某些版本感到恼火。

如果您只需要简单的反序列化序列化功能,则可以通过从解决方案重新安装Newtonsoft当前软件包并安装版本 6.0来解决问题。 .3

此版本与Visual Studio不同版本兼容。

答案 1 :(得分:1)

即使我已经通过“管理解决方案的NuGet软件包”安装了Newtonsoft,我仍然收到此错误。我的修复很简单–我还必须添加“ Newtonsoft.Json.dll”作为参考。

1.  Right-click "References" > Add > Reference > Browse > C:\Users\<username>\.nuget\packages\newtonsoft.json\12.0.3\lib\portable-net45+win8+wp8+wpa81\Newtonsoft.Json.dll > Click the "Add" button > Click "OK"
2.  I did a Build/Clean Solution (that step may not have been necessary)
3.  Build/Build Solution

重新运行,异常消失了。

答案 2 :(得分:1)

这对我有用:

我的问题:最近将 newtonsoft 更新到 13.0.0.0,现在 VS 抱怨缺少 9.0.0.0

  1. 在参考资料中检查您的 Newtonsoft.JSON 的版本 enter image description here

  2. 打开 Web.Config 并将 bindingRedirect 更改为您参考中的版本 enter image description here

答案 3 :(得分:0)

在您的错误中指出未找到库版本“ 12.0.0.0”。在您的配置参考中,列出的版本是“ 12.0.3”

版本不匹配可能是这里的原因。

当我遇到此问题时,通常是在从源代码管理中签出代码之后,由于某种原因,引用丢失了。在这种情况下,它帮助我卸载了nuget,检入,重新安装它们并进行构建(然后再次检入)。也许这对您有用。

答案 4 :(得分:0)

我遇到了这个完全相同的问题,我正在研究要调试的Web API和自编写的DLL。

在另一个项目中处理我的DLL给了我这个错误。

但是我遵循了这些步骤来最终解决我的问题:

  1. 重新安装Newtonsoft.Json
  2. 重新启动Visual Studio
  3. 干净的解决方案(我相信这是真正的解决方案
  4. 构建/重建解决方案

答案 5 :(得分:0)

我怀疑您的项目在运行时不会读取您期望的.config,因为它是从其他进程运行的。尝试重命名.config以匹配调用过程。

提供有关您的VS项目类型的更多详细信息可能会有所帮助。

答案 6 :(得分:0)

这对我来说就像是似曾相识的问题之一 - 在这个特殊的时间,当我的 C# EXE 文件试图调用 Web 服务时抛出了这个异常。在尝试卸载/重新安装/清理/重建/重新启动 VStudio 十几次后,我终于找到了一个解决方案,只需将文件“Newtonsoft.Json.dll”和“Newtonsoft.Json.xml”复制到输出目录(与 EXE 一起) - 执行此操作后,错误最终消失了。 FWIW 我意识到这很可能是一个笨拙/丑陋的解决方案,并没有真正解决核心问题 - 我很高兴我现在可以继续前进。