首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制Swashbuckle.Aspnetcore.Cli使用netcoreapp3.1?

如何强制Swashbuckle.Aspnetcore.Cli使用netcoreapp3.1?
EN

Stack Overflow用户
提问于 2020-04-03 19:01:20
回答 2查看 2.7K关注 0票数 2

我正在升级一个项目,以便从2.2升级到使用.Net Core3.1,并且正在努力让我的工具正常工作。

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

代码语言:javascript
复制
<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>

但是我得到了这些错误:

代码语言:javascript
复制
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

和:

代码语言:javascript
复制
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,但是找不到指定的地方。如何强制我的命令行工具使用正确的.NET核心版本?

EN

回答 2

Stack Overflow用户

发布于 2020-04-14 22:38:29

我也遇到了同样的问题,并通过执行下面描述的安装步骤解决了这个问题:https://github.com/domaindrivendev/Swashbuckle.AspNetCore#retrieve-swagger-directly-from-a-startup-assembly,并删除项目文件的ItemGroup:

代码语言:javascript
复制
<ItemGroup>
  <DotNetCliToolReference Include="Swashbuckle.AspNetCore.Cli" Version="5.2.1" />
</ItemGroup>
票数 2
EN

Stack Overflow用户

发布于 2020-08-20 06:23:45

我在尝试使用dotnet swagger时也遇到了同样的问题。我切换到只使用swagger,这解决了问题。正如@Mike所说,从项目文件中删除ItemGroup并全局安装cli,如下所示:https://github.com/domaindrivendev/Swashbuckle.AspNetCore#retrieve-swagger-directly-from-a-startup-assembly

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61010385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档