【问题标题】:Getting a build err when I do "dotnet run"当我执行“dotnet run”时出现构建错误
【发布时间】:2019-12-24 05:18:46
【问题描述】:

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

所以我添加了 5.0.0-rc3 版本的每日构建,女巫是 5.0.0-rc3-preview-0941,目前来自“https://www.myget.org/feed/domaindrivendev/package/nuget/Swashbuckle.AspNetCore”。我通过将 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" />

【问题讨论】:

    标签: visual-studio-2019 swashbuckle asp.net-core-3.0


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      实际的异常被吞没了。文档生成失败的原因是:

      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


      【讨论】:

        【解决方案3】:

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

        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 "


        我的问题是,为两种方法提供了相同的方法/路径。 ([Route("drivers/{id}")])

        【讨论】:

        • 这对我们有用。原来我们没有安装正确的 .NET 框架。
        【解决方案4】:

        这个问题与 swagger 相关 升级到5.0.0-rc5版本应该可以解决问题 用新版本替换包引用

        &lt;PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="5.0.0-rc5" /&gt;

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

        【讨论】:

          【解决方案5】:

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

          dotnet tool install --global Swashbuckle.AspNetCore.cli --version 5.3.1
          

          【讨论】:

            猜你喜欢
            • 2021-08-10
            • 1970-01-01
            • 2020-02-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-07-27
            • 2018-11-13
            • 2018-12-15
            相关资源
            最近更新 更多