首页 > 解决方案 > .NET Framework dll 无法加载文件或程序集“Newtonsoft.Json ....”

问题描述

我正在创建 ac# .net 框架库 (.dll),它将充当另一个软件的插件。我想使用 Newtonsoft.json 库,但是当我调用 json 库时,我得到了经典的“FileNotFoundException”:

Could not load file or assembly 'Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.

.dll 肯定被复制到我试图从中运行插件的目录中。很多其他人都遇到过这个问题,我已经尝试了我所看到的一切(更新、重新安装等),但还没有运气。因为这是一个类库,所以我没有“app.config”文件来处理绑定重定向,所以我无法尝试。

我现在有非常基本的代码,这个包是我使用的唯一外部参考。我今天才开始研究这个,只尝试过 Newtonsoft.Json 版本 12.0.2。然而,我觉得 VS 似乎在寻找 12.0.0.0 很奇怪。这不是一个下载选项。同样,我尝试降级到版本 11.0.2,然后它给了我同样的错误,说它找不到版本 11.0.0.0。

标签: c#visual-studio

解决方案


即使您的项目可能没有 .app 配置,您仍然可以通过卸载项目并查看 .csproj 文件来查看包引用。

要尝试强制直接引用 Newtonsoft.Json 12.0.2,您可以添加此代码段

 <ItemGroup>
  <PackageReference Include="Newtonsoft.Json">
    <Version>12.0.2</Version>
  </PackageReference>
 </ItemGroup>

我建议您在 Newtonsoft.Json 的 .csproj 中删除任何其他引用


推荐阅读