我正在升级一个项目,以便从2.2升级到使用.Net Core3.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,但是找不到指定的地方。如何强制我的命令行工具使用正确的.NET核心版本?
发布于 2020-04-14 22:38:29
我也遇到了同样的问题,并通过执行下面描述的安装步骤解决了这个问题: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>发布于 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
https://stackoverflow.com/questions/61010385
复制相似问题