.net-core - Azure Pipeline : 'RestResponseBase.StatusCode' is not supported by the language 中的 RestSharp 错误

标签 .net-core azure-devops restsharp

升级到 v107 后,我在 Azure Pipeline 上收到此错误:

##[error]XXXXXXXXXXX.Shared.Integration\APIClients\XXXXXXXXXXRESTClientBase.cs(114,43):错误 CS1545:属性、索引器或事件“RestResponseBase.StatusCode”不受语言支持;尝试直接调用访问器方法“RestResponseBase.get_StatusCode()”或“RestResponseBase.set_StatusCode(??)”

代码在我的笔记本电脑上编译,但由于某种原因在管道上失败。

会不会和升级指南中的这条消息有关? “最重要的变化是 RestSharp 停止使用遗留的 HttpWebRequest 类,而是使用众所周知的“HttpClient”。此举解决了很多问题,例如由于不正确的 HttpClient 实例缓存导致的挂起连接、更新的协议(protocol)支持,以及许多其他问题。”

我使用的是 .NET core 3.1,它仍然有 LTS。

编译失败的例子如下:

    private bool RequestFailed(HttpStatusCode statusCode)
    {
        var result = statusCode == HttpStatusCode.InternalServerError ||
                     statusCode == HttpStatusCode.ServiceUnavailable ||
                     statusCode == HttpStatusCode.Unauthorized;
        if (result) Logger.Verbose("API Call resulted in status code: " + statusCode.ToString());

        return result;
    }

    private bool HandleResult(RestResponse response)
    {
        return RequestFailed(response.StatusCode);
    }

线上有哪些错误:

return RequestFailed(response.StatusCode);

类似问题:

错误 CS1545:该语言不支持属性、索引器或事件“Parameter.Name”

        public static void SetCorrelationId(RestRequest request, Guid? correlationId)
        {
            var existingHeader = request.Parameters.Where(x => x.Name == CorrelationIdHeaderKey).FirstOrDefault();
            ...
        }

最佳答案

此问题是由于 .NET Core 3.1 SDK 无法使用具有 init 而不是 set 的属性引起的,尽管 RestSharp 是针对 .NET Standard 构建的,并且应该与 .NET Core 3.1 一起工作。

它可以在您的机器上运行,因为您有更新的 SDK(.NET 5 或 6)。较新的 SDK 可以为遗留目标构建,因此它工作得很好。在您的 CI 管道中,您很可能使用 .NET Core 3.1 SDK 来构建解决方案,但它失败了。

关于.net-core - Azure Pipeline : 'RestResponseBase.StatusCode' is not supported by the language 中的 RestSharp 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71255156/

相关文章:

azure - Azure DevOps 中的 "Build after the previous execution has succeeded"

c# - Restsharp 补丁请求

xamarin.ios - ServiceStack 能否用于 Monotouch 和 Mono for Droid 的 HTTP 服务器推送(HTTP 流媒体)

c# - 内容类型 text/xml;响应消息的字符集 ="utf-8"与绑定(bind)的内容类型不匹配(文本/xml;字符集=utf-8)

C# Azure AppendBlob AppendBlock 添加大于 4mb 限制的文件

c# - 如何解决 .net 核心构建错误 NETDSDK1061 和警告 MSB3277

git - 如何确保 Visual Studio Online Git Repository 是私有(private)的?

kubernetes - Kubernetes 升级到 v1.22 后 DevOps CI/CD 管道中断

c# - ASP.NET Core 中必需的查询字符串参数

c# - RestClient - 请求返回 500 内部服务器错误(内容为 html)并且没有 ErrorMessage