无法将 ASP.NET Web API 发布到 Azure 应用服务(使用 SwashBuckle)

Cannot publish ASP.NET Web API to Azure App Service (with SwashBuckle)

我有一个已在 Azure 中 运行 一段时间的应用服务。我刚刚将它更新到 .NET 6.0(并在本地安装了 Swashbuckle.aspnetcore.cli v6.2.3)。

我无法发布到 Azure。当我第一次尝试时,它告诉我它找不到 aspnetcore3.0,它能找到的唯一安装版本是 .NET 5.1.4 和 .NET 6.0.1。

按照此处的说明进行操作: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/1485

我在我的项目中添加了一个global.json:

{
    "sdk":
    {
        "version": "6.0.1",
        "rollForward": "latestPatch"
    }
}

现在,当我尝试发布时出现以下错误:

    Failed to install DotNet CLI tool 'swashbuckle.aspnetcore.cli'.  Error dotnet tool restore

Could not execute because the application was not found or a compatible .NET SDK is not installed.
Possible reasons for this include:
  * You intended to execute a .NET program:
      The application 'tool' does not exist.
  * You intended to execute a .NET SDK command:
      A compatible installed .NET SDK for global.json version [6.0.1] from [C:\Projects\MyProject\global.json] was not found.
      Install the [6.0.1] .NET SDK or update [C:\Projects\MyProject\global.json] with an installed .NET SDK:

如何发布我的应用服务?

您可以尝试的一种简单解决方法是 -

  • 这与导致问题的发布配置文件有关。
  • 创建一个新的,并检查它现在是否正常运行。

此外,请尝试引用此 link

对于发现此问题的任何其他人,我最终通过编辑项目根文件夹中“.config”文件夹中的文件“dotnet-tools.json”并更改swashbuckle.aspnetcore.api 的版本从 5.6.3 到 6.3.0。

我也更新到 swashbuckle 6.3.0,并将 global.json 更改为:

{
    "sdk":
    {
        "version": "5.6.3",
        "rollForward": "latestMajor"
    }
}

注意使用 latestMajor 而不是 latestPatch。