.NET 6构建时生成Swagger.json遇CLI安装错误,求解决方案
解决构建时生成Swagger.json的Swashbuckle CLI安装错误
问题分析
你遇到的NU1212错误核心原因是:在WebApi项目目录下执行dotnet tool install命令,导致工具被尝试添加为项目的PackageReference,但Swashbuckle.AspNetCore.Cli是DotnetTool类型,不能作为项目依赖包引用,必须通过解决方案级别的工具清单安装。
修复步骤
1. 确保工具清单在解决方案根目录创建
如果之前是在WebApi项目子目录执行的dotnet new tool-manifest,先删除该目录下的.config文件夹,然后切换到解决方案根目录执行:
dotnet new tool-manifest
执行后会在解决方案根目录生成.config/dotnet-tools.json文件,用于管理本地工具。
2. 正确安装Swashbuckle CLI工具
保持在解决方案根目录,执行安装命令:
dotnet tool install --version 6.4.0 Swashbuckle.AspNetCore.Cli
此时工具会被添加到本地工具清单,而非项目依赖。
3. 移除项目中错误的包引用(如果存在)
检查WebApi项目的.csproj文件,若存在以下类似内容,直接删除:
<PackageReference Include="Swashbuckle.AspNetCore.Cli" Version="6.4.0" />
4. 配置构建时自动生成Swagger.json
编辑WebApi项目的.csproj文件,添加以下目标配置,实现构建后自动生成Swagger.json到输出目录:
<Target Name="GenerateSwagger" AfterTargets="Build"> <Exec Command="dotnet swagger tofile --output $(OutputPath)swagger.json $(AssemblyName).dll v1" /> </Target>
v1是你的API版本,可根据实际情况修改;- 若需要生成yaml格式,可替换为
dotnet swagger toyaml命令。
验证安装
执行以下命令确认工具安装成功:
dotnet swagger --version
内容的提问来源于stack exchange,提问作者S2K
相关产品推荐
相关产品推荐

