1

如本文“ https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/1185 ”中所述,我遇到了 Swashbuckle.AspNetCore 版本 5.0.0-rc2 的问题。

所以我添加了 5.0.0-rc3 版本的每日版本,目前来自“ https://www.myget.org/feed/domaindrivendev/package/nuget/Swashbuckle.AspNetCore ”的 5.0.0-rc3-preview-0941 . 我通过将 myget 源添加到 VS2019 来做到这一点。

这是一个图像链接,显示我如何设置 VS:在此处输入图像描述

添加 rc3 后,我收到以下构建错误。我不确定这是 Swashbuckle 的问题还是其他问题。

Severity Code Description Project File Line Suppression State
Error MSB3073 The command "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" " exited with code 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" />
4

5 回答 5

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


于 2019-09-26T07:02:15.503 回答
2

谁遇到此错误,请按照以下步骤操作

  1. 复制从“dotnet”开始到“--platform”结束的文本。(显示在您的错误列表中。复制时退出时不需要代码)
  2. 打开命令提示符并粘贴文本。
  3. 点击回车,现在你可以看到你的错误了。修复相同并构建您的项目。

问题样本

"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"


我的问题是,为两种方法提供了相同的方法/路径。([路线(“司机/{id}”)])

于 2019-10-03T06:19:17.840 回答
0

对我有用的是全局安装 Swashbuckle.AspNetCore.cli,然后问题得到解决:

dotnet tool install --global Swashbuckle.AspNetCore.cli --version 5.3.1
于 2020-05-19T09:00:49.497 回答
0

由于某种原因,我发现未创建项目 obj 文件夹中的文件“API.OpenApiFiles.cache”。我手动创建了一个。

于 2019-08-19T02:26:48.493 回答
0

这个问题是swagger相关的升级到5.0.0-rc5版本应该可以解决问题replace package reference with new version

<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="5.0.0-rc5" />

如果您需要,这里是 nuget 链接 https://www.nuget.org/packages/Swashbuckle.AspNetCore.Swagger/5.0.0-rc5

于 2019-12-17T05:42:23.387 回答