.net-core - 如何强制Swashbuckle.Aspnetcore.Cli使用netcoreapp3.1?

标签 .net-core swagger csproj

我正在将一个项目从 2.2 升级为使用 .Net Core 3.1,并且正在努力让我的工具正常工作。

我的 .csproj 文件中有此部分,它在发布时生成一个 swagger.json 文件 - 它在我们的构建管道中执行并作为工件发布。

<ItemGroup>
  <DotNetCliToolReference Include="Swashbuckle.AspNetCore.Cli" Version="5.2.1" />
</ItemGroup>
<Target Name="Swagger" AfterTargets="PrepareForPublish" DependsOnTargets="Build" Outputs="$(PublishDir)swagger.json">
  <Exec Command="dotnet swagger tofile --output $(PublishDir)swagger.json $(OutputPath)\$(AssemblyName).dll v1" />
</Target>

但是我遇到了这些错误:

Package Swashbuckle.AspNetCore.Cli 5.2.1 is not compatible with netcoreapp2.2 (.NETCoreApp,Version=v2.2). Package Swashbuckle.AspNetCore.Cli 5.2.1 supports:
- netcoreapp2.1 (.NETCoreApp,Version=v2.1) / any
- netcoreapp3.0 (.NETCoreApp,Version=v3.0) / any

和:

Invalid project-package combination for Swashbuckle.AspNetCore.Cli 5.2.1. DotnetToolReference project style can only contain references of the DotnetTool type

奇怪的是,我的项目正在使用 3.1 - 我在“netcoreapp2.2”和“2.2”上执行了 ctrl+f,但找不到指定的任何地方。如何强制我的 CLI 工具使用正确的 .NET Core 版本?

最佳答案

我遇到了同样的问题,并按照此处描述的安装步骤解决了它:https://github.com/domaindrivendev/Swashbuckle.AspNetCore#retrieve-swagger-directly-from-a-startup-assembly ,并通过删除项目文件的 ItemGroup:

<ItemGroup>
  <DotNetCliToolReference Include="Swashbuckle.AspNetCore.Cli" Version="5.2.1" />
</ItemGroup>

关于.net-core - 如何强制Swashbuckle.Aspnetcore.Cli使用netcoreapp3.1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61010385/

相关文章:

c# - 从 F# 调用 C# 异步方法会导致死锁

javascript - 在 headless 浏览器中使用 Blazor 与 C# 一起运行 Javascript

c# - Swagger 中的重复参数输出

swagger - OpenAPI 3.0 是否允许引用服务器变量?

c# 开发和 project.json

sql-server - 使用 EF Core 选择特定表列以列出异步

asp.net-web-api - 标有 JsonIgnore 的属性仍显示在 Web API 的 Swagger UI 文档中

c# - 如何以编程方式检查解决方案中是否正确配置了引用

c# - 使用 monodevelop 打开 .csproj

c# - "Exceeded retry count of 10. Failed."因为 csproj 配置错误