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

时间:2018-04-25 15:09:06

标签: .net-core cloudfoundry buildpack mindsphere

出于测试目的,我编写了一个小的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 buildpack明确使用哪个版本?

1 个答案:

答案 0 :(得分:1)

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

但真正的问题是这个包没有绑定到指定的“RuntimeFrameworkVersion”,但有自己的依赖关系并加载它们无论如何。在我的情况下,扩展具有2.0.6的依赖性,除了我指定的版本2.0.0之外,它还尝试加载

由于生产中的应用程序不需要添加的CLI扩展,因此解决方案是从.csproj中删除此段落...

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