Почему CloudFoundry устанавливает несколько версий .NET Core?

В целях тестирования я написал небольшой проект веб-API ASP.NET Core, задав .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, какую версию использовать?


person ThisWillDoIt    schedule 25.04.2018    source источник


Ответы (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>
person ThisWillDoIt    schedule 26.04.2018