RestSharp:RestClient 构造函数抛出 System.IO.FileNotFoundException

RestSharp: RestClient constructor throws System.IO.FileNotFoundException

我正在 Visual Studio 2022 年开发 .NET Core 3.1 Azure Function App。今天升级到最新版本的 RestSharp 后,当我尝试实例化一个新的 RestClient 时出现以下异常:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified. File name: 'System.Text.Json, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' at RestSharp.Serializers.Json.SystemTextJsonSerializer..ctor()

这是我用来实例化客户端的代码:

var clientOptions = new RestClientOptions
{
    BaseUrl = new Uri("https://xxxxxxx.com"),
    Timeout = 29000
};
_restClient = new RestClient(clientOptions);   

无论我是否将 ClientOptions 对象传递给构造函数,都会发生错误。

我尝试通过 Nuget 安装 System.Text.Json 的 5.0.0.0 版,但没有成功。我还删除了可能依赖于不同版本 System.Text.Json 的其他软件包 - 但这似乎也不起作用。

我尝试过清理我的解决方案,删除 obj 和 bin 文件夹,关闭并重新打开 Visual Studio,甚至重新启动我的机器。还是不行。

有什么建议吗?我正在撕扯我的头发。

如果您的目标是 .net core 函数应用程序,您可以使用 .net core 参考。

在这里,如果您使用的 RestSharp 包含 .net,请将其从您的 .netcore 项目中移除

我在这里使用 RestSharp.netcore 目标 .netcore azure function

Resharp.Newtonsoft.Json.NetCore 包已弃用,因此您可以重定向到 RestSharp.Serializers.NewtonsoftJson 您需要安装此包.

并且在您的 .csproj 文件中,您必须在 < PropertyGroup>

下提及以下代码行
<_FunctionsSkipCleanOutput> true </_FunctionsSkipCleanOutput>

用于跳过先前加载的输出的引用缓存。每次加载新引用时。

这是我们添加了 RestSharp.Serializers.NewtonsoftJson 包并且 Not 添加了 _FunctionsSkipCleanOutput

添加 RestSharp.Serializers.NewtonsoftJson 包和 _FunctionsSkipCleanOutput

之后