【问题标题】:MSB3037 openapi2csclient exited with code -1MSB3037 openapi2csclient 已退出,代码为 -1
【发布时间】:2023-02-14 18:55:59
【问题描述】:

我使用 Visual Studio Add-Service-Reference 添加了一个使用 OpenAPI 规范的服务。

我输入了 swagger URL 并生成了代码。

.csproj 表示服务已配置。

但是,当我尝试构建时出现错误。

该向导包含this链接

该服务是使用 AutoRest 生成的。我正在使用 VS2022 17.2.5

完整的错误是

错误 MSB3073 命令 ""C:\Users\kirst.nuget\packages\nswag.msbuild\13.0.5\build../tools/Win/NSwag.exe" openapi2csclient /className:myapicls /namespace:myapi /输入:D:\dev\MyApi\UnitTestProject1\OpenAPIs\index.html /output:obj\indexClient.cs " 以代码退出 -1。 UnitTestProject1 C:\Users\kirst.nuget\packages\nswag.apidescription.client\13.0.5\build\NSwag.ApiDescription.Client.targets 28

【问题讨论】:

标签: swagger openapi nswag autorest


【解决方案1】:

服务参考需要 OpenAPI YAML/JSON 文档,而不是 Swagger UI 网页。 This answer 解释了如何找到 OpenAPI YAML/JSON 文件的 URL 或从 Swagger UI 导出它。

【讨论】:

    【解决方案2】:

    如果其他人在这里结束但获得了正确的 URL(通常是 /api/swagger.json),则项目路径中的空格可能存在问题。在将项目签出到另一台机器后,我开始遇到这个问题。

    修复在文件中 C:用户{用户}.nugetpackages swag.apidescription.client.0.5uildNSwag.ApiDescription.Client.targets

    在第 21 行:

        <Command>%(Command) /input:%(FullPath) /output:%(OutputPath) %(Options)</Command>
    

    要使 swagger 空格兼容,请将该行更改为:

        <Command>%(Command) /input:"%(FullPath)" /output:"%(OutputPath)" %(Options)</Command>
    

    之后错误消失了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-10
      • 1970-01-01
      • 2021-04-16
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      相关资源
      最近更新 更多