gpt4 book ai didi

c# - Web API 项目在部署时不会运行 - 无法加载文件或程序集 'Newtonsoft.Json,版本 = 4.5.0.0

转载 作者:太空狗 更新时间:2023-10-29 20:58:43 24 4
gpt4 key购买 nike

我在部署 MVC 5 WEB API 项目时不断收到此错误:

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

我关注了this并重新安装 NuGet 包“Update-Package Newtonsoft.Json -Reinstall”,但它没有用。

这里有人知道哪里出了问题吗?

最佳答案

检查对 Newtonsoft.json DLL 的引用并确保它没有自动选择解决方案中 packages 文件夹之外的版本。

我的 VS 2013 一直在各种 /program files (x86)/... 文件夹中找到其他副本。它甚至忽略了将包版本 DLL 显式添加到项目中。必须更深入地挖掘以找出发生这种情况的原因......

调查

我在文本编辑模式下打开项目 .csproj 文件,并搜索对 Newtonsoft.Json 的所有引用。

事实证明我在我的 csproj 文件中没有一个,而是两个对 DLL 的引用(我不知道这是可能的)。其中一个引用了较旧的 Newtonsoft.json 5.0.6(当前为 5.0.8)。

解决方案

我没有手动删除其中一个,而是将这个缺失的元素添加到第二个 DLL 包含中。我也把版本号改成了5.0.8:

  <Private>True</Private>

现在看起来像:

<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\CsQueryTest\packages\Newtonsoft.Json.5.0.8\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>

Private 是为 DLL 引用定义“复制本地”的设置。然后它再次开始在输出中包含 DLL!

我会找出要从 csproj 文件中删除的内容,但现在如果您遇到此问题,这可能会让您继续前进。看起来原因可能是过去的 NUGET 更新。

关于c# - Web API 项目在部署时不会运行 - 无法加载文件或程序集 'Newtonsoft.Json,版本 = 4.5.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20405334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com