我正在将一个项目从 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/