【问题标题】:Adding WCF Reference in .Net Core 2.2 Web API failed在 .Net Core 2.2 Web API 中添加 WCF 参考失败
【发布时间】:2021-05-25 12:13:42
【问题描述】:

我正在使用 VS 2017,.Net Core 2.2 API 项目,其中包含对其他服务的一些 WCF 引用。在我在同一台机器上安装 VS 2019 之前一切正常。

现在尝试Add Connected Service,在台阶上卡了一段时间:

Restoring NuGet packages for bootstrapper...

然后失败并显示以下错误消息。

Importing web service metadata ...
Number of service endpoints found: 1
Scaffolding service reference code ...
Restoring NuGet packages for bootstrapper ...
Warning:Warning: Determining projects to restore...
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605: Detected package downgrade: Microsoft.Extensions.DependencyInjection from 3.1.2 to 2.2.0. Reference the package directly from the project to select a different version. 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Serilog.AspNetCore 3.4.0 -> Microsoft.Extensions.DependencyInjection (>= 3.1.2) 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Microsoft.Extensions.DependencyInjection (>= 2.2.0)
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605: Detected package downgrade: Microsoft.Extensions.Logging from 3.1.2 to 2.2.0. Reference the package directly from the project to select a different version. 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Serilog.AspNetCore 3.4.0 -> Microsoft.Extensions.Logging (>= 3.1.2) 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Microsoft.Extensions.Logging (>= 2.2.0)
  Failed to restore C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj (in 8.33 sec).
Building bootstrapper project ...
Error:Error: Microsoft (R) Build Engine version 16.8.3+39993bd9d for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605: Detected package downgrade: Microsoft.Extensions.DependencyInjection from 3.1.2 to 2.2.0. Reference the package directly from the project to select a different version. 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Serilog.AspNetCore 3.4.0 -> Microsoft.Extensions.DependencyInjection (>= 3.1.2) 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Microsoft.Extensions.DependencyInjection (>= 2.2.0)
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605: Detected package downgrade: Microsoft.Extensions.Logging from 3.1.2 to 2.2.0. Reference the package directly from the project to select a different version. 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Serilog.AspNetCore 3.4.0 -> Microsoft.Extensions.Logging (>= 3.1.2) 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Microsoft.Extensions.Logging (>= 2.2.0)

Build FAILED.

C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605: Detected package downgrade: Microsoft.Extensions.DependencyInjection from 3.1.2 to 2.2.0. Reference the package directly from the project to select a different version. 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Serilog.AspNetCore 3.4.0 -> Microsoft.Extensions.DependencyInjection (>= 3.1.2) 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Microsoft.Extensions.DependencyInjection (>= 2.2.0)
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605: Detected package downgrade: Microsoft.Extensions.Logging from 3.1.2 to 2.2.0. Reference the package directly from the project to select a different version. 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Serilog.AspNetCore 3.4.0 -> Microsoft.Extensions.Logging (>= 3.1.2) 
C:\Users\midrees\AppData\Local\Temp\WCFConnectedService\2021_Feb_23_10_27_37\svcutil_bootstrap\SvcutilBootstrapper.csproj : error NU1605:  SvcutilBootstrapper -> Microsoft.Extensions.Logging (>= 2.2.0)
    0 Warning(s)
    2 Error(s)

Time Elapsed 00:00:02.97

An error occurred while bootstrapping svcutil. This usually happens when processing references.  You might be able to work around this problem by not providing reference parameters, and manually removing any types redefined in the generated proxy code.
Done.

【问题讨论】:

    标签: wcf asp.net-core-webapi asp.net-core-2.2


    【解决方案1】:

    这是一个Visual Studio的issue,github上也有同样的issue,可以参考it

    除了使用 Add Connected Service 生成代理类,我们还可以使用 dotnet-svcutil 命令生成代理类。

    Windows Communication Foundation (WCF) dotnet-svcutil 工具是一种 .NET 工具,可从网络位置上的 Web 服务或 WSDL 文件中检索元数据,并生成包含访问 Web 服务的客户端代理方法的 WCF 类操作。

    与用于 .NET Framework 项目的服务模型元数据 - svcutil 工具类似,dotnet-svcutil 是一个命令行工具,用于生成与 .NET Core 和 .NET Standard 项目兼容的 Web 服务引用。

    建议你使用dotnet-svcutil生成代理类,更多关于dotnet-svcutil的信息可以参考这个link

    【讨论】:

    • 谢谢@丁鹏。它适用于 dotnet-svcutil。您为 github 问题共享的链接,它发布于 2017 年,我想知道我们仍然没有任何解决方案如何从 VS2017 UI 解决。
    猜你喜欢
    • 2018-01-19
    • 1970-01-01
    • 2016-11-16
    • 2019-07-16
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 2019-08-06
    相关资源
    最近更新 更多