gpt4 book ai didi

c# - 无法加载文件或程序集 Newtonsoft.json.dll

转载 作者:太空狗 更新时间:2023-10-29 17:39:27 25 4
gpt4 key购买 nike

“Could not load file or assembly 'Newtonsoft.Json, Version=4.0.3.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)”.

发布到推特需要'NewtonsoftJson.dll'程序集。使用的版本是4.0.3.0。

同样的程序集(但不同版本 4.0.0.0)被 facebook C# api(dll) 用作依赖程序集。然而,上述程序集 (4.0.3.0) 不适用于这两种情况(即发布到 Twitter 和登录到 Facebook)。为了解决它,创建了一个单独的项目用于发布到 twitter 并分别引用程序集(4.0.3.0)(在 twitter 发布的项目中)。另一个版本(4.0.0.0)被添加为 facebook 的主项目中的引用但仍然出现错误。如果禁用并运行了 twitter 项目,则 facebook 登录工作正常,反之亦然。

我做了很多研究并尝试了以下方法。

删除临时的asp.net文件干净的解决方案重启电脑

甚至尝试从 gac 卸载程序集(但它没有在那里注册)。

请帮我解决这个问题,因为它不起作用。谢谢,S

最佳答案

目前还不清楚项目之间的关系是什么,也不清楚这个错误是什么时候发生的,但这是一个猜测。

您有 3 个项目:facebook 项目(refs 4.0.0.0 版本)、twitter 项目(refs 4.0.3.0 版本)和一个引用这两个项目的主项目。您也许能够构建此解决方案,但是当您运行程序集时绑定(bind)将失败。为什么?因为默认行为是在运行之前在本地复制程序集。发生的情况是,第一个项目将副本构建到 bin(比如 twitter),然后第二个项目构建(facebook),然后是 main。但是,最后 4.0.0.0 版本位于 bin 文件夹中。当您运行时,一旦您从 Twitter 调用某些尝试使用问题程序集的内容,绑定(bind)就会失败,因为它不再能够访问程序集的 4.0.3.0 版本。

有几种方法可以解决这个问题。一种是在 GAC 中注册这两个程序集。如果那不可行,请查看 assembly binding redirection在你的配置文件中。另一个是注册AssemblyResolve event并以编程方式加载程序集。

关于c# - 无法加载文件或程序集 Newtonsoft.json.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9426723/

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