Почему CloudFoundry устанавливает несколько версий ядра.NET?
В целях тестирования я написал небольшой проект 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, какую версию использовать?
1 ответ
TIL шаблон проекта добавляет расширение.NET Core CLI в.csproj. Этот пакет не распознается менеджером пакетов NuGet, и поэтому его трудно пропустить.
Но реальная проблема заключается в том, что этот пакет не привязан к указанному "RuntimeFrameworkVersion", но имеет свои собственные зависимости и загружает их, несмотря ни на что. В моем случае расширение имело зависимость от 2.0.6, которую оно пыталось загрузить в дополнение к моей указанной версии 2.0.0
Поскольку добавленное расширение CLI не требуется для приложения в рабочей среде, было решено удалить этот абзац из.csproj...
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.3" />
</ItemGroup>