出于测试目的,我编写了一个小型ASP.NET Core项目,将.csproj设置为包含以下内容:
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeFrameworkVersion>2.0.0</RuntimeFrameworkVersion>
</PropertyGroup>当我将这个项目推到CF上时,它会按需要安装“DotNet-Framework2.0.0”,但除此之外,它还会尝试安装“DotNet-Framework2.0.6”,这在我使用的CloudFoundry环境(MindSphere)中是不可用的,因此失败了。
为什么CF试图安装多个.NET核心版本?该2.0.6从何而来,或者如何显式地告诉CloudFoundry构建包使用哪个版本?
发布于 2018-04-26 12:34:44
直到项目模板向.NET添加了一个.csproj核心CLI扩展。此包不为NuGet包管理器所识别,因此很难错过。
但真正的问题是,这个包没有绑定到指定的"RuntimeFrameworkVersion“,而是有它自己的依赖项,并且无论如何都会加载它们。在我的例子中,扩展依赖于2.0.6,除了我指定的2.0.0版本外,它还试图加载它。
由于在生产中不需要添加CLI扩展,所以解决方案是从.csproj中删除这一段.
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.3" />
</ItemGroup>https://stackoverflow.com/questions/50025706
复制相似问题