为什么 CloudFoundry 安装多个 .NET Core 版本?

Why is CloudFoundry installing multiple .NET Core Versions?

出于测试目的,我写了一个 ASP.NET Core Web API 项目,将 .csproj 设置为包含以下内容:

<PropertyGroup>
  <TargetFramework>netcoreapp2.0</TargetFramework>
  <RuntimeFrameworkVersion>2.0.0</RuntimeFrameworkVersion>
</PropertyGroup>

当我将此项目推送到 CF 时,它会按原样安装 "dotnet-framework 2.0.0",但此外它还会尝试安装 "dotnet-framework 2.0.6",这在我使用的 CloudFoundry 环境 (MindSphere) 中不可用,并且因此失败了。

为什么 CF 试图安装多个 .NET Core 版本?那个 2.0.6 从哪里来,或者如何明确地告诉 CloudFoundry 构建包要使用哪个版本?

直到项目模板将 .NET Core CLI 扩展添加到 .csproj。 NuGet 包管理器无法识别此包,因此很难错过。

但真正的问题是这个包没有绑定到指定的 "RuntimeFrameworkVersion" 但有自己的依赖项并无论如何加载它们。在我的例子中,除了我指定的版本 2.0.0

之外,扩展还依赖于 2.0.6,它试图加载

因为生产中的应用程序不需要添加的 CLI 扩展,所以解决方案是从 .csproj 中删除这一段...

<ItemGroup>
  <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.3" />
</ItemGroup>