我在Swashbuckle.AspNetCore版本5.0.0-rc2上遇到了问题,如本文“ https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/1185”中所述。
因此,我添加了5.0.0-rc3巫婆的每日版本,目前是“ https://www.myget.org/feed/domaindrivendev/package/nuget/Swashbuckle.AspNetCore”中的5.0.0-rc3-preview-0941。我是通过将myget源添加到VS2019来实现的。
以下是图像的链接,显示了我如何进行VS设置:https://photos.google.com/share/AF1QipPCp8_d3QEuwXUwCc8ogpqxsFJ210Krj1Q1usQagLfpbpUoSQ0lAa7OB3ZIqNMIrw/photo/AF1QipMUVlxnh8YgiZhIfmAPux5gXGE2cUnxOgxq-gbg?key=YmxGWWdMcDJxOHJ1emY4MVljaDF0RS1nV25PU1BB
添加rc3后,出现以下构建错误。我不确定这是否是Swashbuckle的问题或其他问题。
严重性代码描述项目文件行抑制状态 错误MSB3073命令“ dotnet“ C:\ Users \ CTGCntrols.nuget \ packages \ microsoft.extensions.apidescription.server \ 0.3.0-preview7.19365.7 \ build /../ tools / dotnet-getdocument.dll” --assembly “ C:\ Users \ CTGCntrols \ Source \ Repos \ FlameMetals \ API \ bin \ Debug \ netcoreapp3.0 \ API.dll”-文件列表“ obj \ API.OpenApiFiles.cache” --framework“ .NETCoreApp,Version = v3.0“-输出” obj“ --project” API“-资产文件” C:\ Users \ CTGCntrols \ Source \ Repos \ FlameMetals \ API \ obj \ project.assets.json“-平台” x64“”以代码7退出。API C:\ Users \ CTGCntrols.nuget \ packages \ microsoft.extensions.apidescription.server \ 0.3.0-preview7.19365.7 \ build \ Microsoft.Extensions.ApiDescription.Server.targets 41 >
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0-rc3-preview-0931" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="5.0.0-rc2" />
<PackageReference Include="Swashbuckle.AspNetCore.Filters" Version="5.0.0-rc8" />
<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="5.0.0-rc3-preview-0931" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="5.0.0-rc3-preview-0931" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="5.0.0-rc3-preview-0931" />
答案 0 :(得分:3)
实际的异常被吞下。该文档的生成失败,因为:
System.NotSupportedException:行为不明确的HTTP方法-XXX.Controllers.ControllerYYY.ActionZZZ。动作需要Swagger 2.0的显式HttpMethod绑定
这是一个纯粹的招摇相关的错误。我之前在Visual Studio 2017的Error List
窗口中看到过该错误,但我猜他们仍然在加速VS 2019和.NET Core ...
您可以通过手动执行上述命令来查看实际的异常。只需打开命令提示符窗口并粘贴文本:
dotnet "C:\Users\CTGCntrols.nuget\packages\microsoft.extensions.apidescription.server\0.3.0-preview7.19365.7\build/../tools/dotnet-getdocument.dll" --assembly "C:\Users\CTGCntrols\Source\Repos\FlameMetals\API\bin\Debug\netcoreapp3.0\API.dll" --file-list "obj\API.OpenApiFiles.cache" --framework ".NETCoreApp,Version=v3.0" --output "obj" --project "API" --assets-file "C:\Users\CTGCntrols\Source\Repos\FlameMetals\API\obj\project.assets.json" --platform "x64"
实际上,XML文档生成过程中的任何异常都可能导致生成错误。例如,如果路径路径中有错别字,并且路径模板无效,则会出现相同的构建错误。
.NET Core 3.0和Visual Studio 2019 PREVIEW版本.16.4.0经历了所描述的行为。预览版1.0
答案 1 :(得分:1)
面对此错误的任何人,请按照以下步骤操作
问题样本
“ dotnet” C:\ Users \ CTGCntrols.nuget \ packages \ microsoft.extensions.apidescription.server \ 0.3.0-preview7.19365.7 \ build /../ tools / dotnet-getdocument.dll“ --assembly” C:\ Users \ CTGCntrols \ Source \ Repos \ FlameMetals \ API \ bin \ Debug \ netcoreapp3.0 \ API.dll“-文件列表” obj \ API.OpenApiFiles.cache“ --framework” .NETCoreApp,Version = v3.0“-输出” obj“ --project” API“-资产文件” C:\ Users \ CTGCntrols \ Source \ Repos \ FlameMetals \ API \ obj \ project.assets.json“-平台” x64 “
我的问题是,两种方法都使用相同的方法/路径。 ([Route(“ drivers / {id}”)])
答案 2 :(得分:0)
由于某种原因,我发现未在项目的obj文件夹中创建文件“ API.OpenApiFiles.cache”。我手动创建了一个。
答案 3 :(得分:0)
对我有用的是在全局安装Swashbuckle.AspNetCore.cli,然后问题解决了:
dotnet tool install --global Swashbuckle.AspNetCore.cli --version 5.3.1
答案 4 :(得分:-1)
此问题与招摇有关 升级到版本5.0.0-rc5应该可以解决问题 用新版本替换软件包引用
<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="5.0.0-rc5" />
这是nuget链接(如果需要) https://www.nuget.org/packages/Swashbuckle.AspNetCore.Swagger/5.0.0-rc5