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

.net core 如何强制Swashback.Aspnetcore.Cli使用netcoreapp3.1?,.net-core,swagger,csproj,.net Core,Swagger,Csproj,我正在将一个项目从2.2升级到使用.NETCore3.1,并且正在努力使我的工具正常工作 我的.csproj文件中有这个部分,它在发布时生成一个swagger.json文件——它在构建管道中执行,并作为工件发布 <ItemGroup> <DotNetCliToolReference Include="Swashbuckle.AspNetCore.Cli" Version="5.2.1" /> </ItemGroup> <Target Name="Sw

我正在将一个项目从2.2升级到使用.NETCore3.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>
以及:


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

我遇到了相同的问题,并通过以下安装步骤解决了此问题:,并删除了项目文件的项目组:



我在尝试使用
dotnet-swagger
时遇到了同样的问题。我改为只使用
swagger
,这就解决了这个问题。正如@Mike所说,从项目文件中删除项目组,并按照此处所述全局安装cli:

从.NET Core 3.0开始,不再推荐使用
DotNetCliToolReference
。改用工具清单。
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