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