Основная ошибка .NetCore 3.1 dotnet-runtime во время развертывания

Я хочу развернуть свой проект с помощью Pivotal от Bamboo. Во время развертывания моего проекта .NetCore 3.1 я получаю сообщение об ошибке "Невозможно установить dotnet-runtime: не удалось найти версию dotnet-runtime для установки". Стек развертывания установлен на cflinuxfs3.

Я попытался указать версию среды выполнения dotnet (3.1 и 3.1.5) в файле.csproj, но возникла та же ошибка, поэтому я удалил ее.

Я также создал файл buildpack.yml и указал версию sdk.netcore как 3.1.x там.

Я использую группу свойств из csproj и файла manifest.yml.

-- Журнал ошибок --

Загрузка пакета приложения...
Загруженный пакет приложения (6.4M) -----> Dotnet-Core Buildpack версии 2.3.12
-----> Поставка ядра Dotnet -----> Установка libunwind 1.4.0
Копировать [/ TMP /buildpacks/b7bd2a36eb284e204524c677d2dbbfa2/ зависимости /a54cfafce3d2a14e4f96777d5fd471f4/libunwind_1.4.0_linux_noarch_cflinuxfs3_05e08b22.tgz] с помощью SDK по умолчанию
-----> Установка DotNet-SDK 3.1.301
Copy[/ TMP /buildpacks/b7bd2a36eb284e204524c677d2dbbfa2/ зависимости /b422801667458a262ba26a3117b93e4f/ DotNet-sdk_3.1.301_linux_x64_any-stack_80a771e4.tar.xz]

-----> Установка dotnet-runtime 3.1.5
Скопируйте [/tmp/buildpacks/b7bd2a36eb284e204524c677d2dbbfa2/dependencies/40b5a460524fe7f1795c876445349a31/dotnet-runtime_3.1.5_linux_x64a_anyz-ack]

-----> Завершение работы с ядром Dotnet
ОШИБКА Невозможно установить dotnet-runtime: не удалось найти версию dotnet-runtime для установки Не удалось скомпилировать дроплет: не удалось запустить сценарий финализации: статус выхода 12 Статус выхода 223 Ячейка ffe536bc-374c-46b5-a620-e3366dab6b22 остановка экземпляра b71ecb48-0083-4fd1-8f59-3a77b05de0e0

Ошибка постановки приложения: сбой постановки приложения на этапе компиляции пакета сборки

-.csproj -

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <ServerGarbageCollection>true</ServerGarbageCollection>
    <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
    <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <NoWarn>$(NoWarn);1591</NoWarn>
  </PropertyGroup>

- manifest.yml -

---
applications:
- name: projectName
  memory: 1G
  timeout: 240
  instances: 1
  routes:
   - route: routeAddress
  services:
   - ARCHITECTURE.SERVICES-TST.ServiceRegistry
   - ProjectName.Redis
   - ProjectName.Dynatrace
   - ProjectName.ConfigServer
  env:
    DT_TAGS: ((appName)) ((dc))-((env))
    TZ: country
    ASPNETCORE_ENVIRONMENT: environmentName
    SPRING_CLOUD_CONFIG_LABEL: configLabel

1 ответ

Хорошо, вот что происходит.

  1. Код смотрит на RuntimeFrameworkVersion в вашей.csprojфайл.

  2. Когда он пуст, он будет смотреть на TargetFramework и пытаться найти совпадение подстроки с помощью регулярного выраженияnetcoreapp(.*).

  3. Ожидается, что будет одно совпадение, но в вашем случае его нет, поэтому вы получите это сообщение об ошибке:could not find a version of dotnet-runtime to install.

На основе вашего .csprojфайл, похоже, что то, что у вас есть, должно быть в порядке. Я быстро проверил, регулярное выражение работает и возвращает версию.

Вы можете попробовать установить RuntimeFrameworkVersion который потребует немного другого пути кода и может сработать для вас.

Вы пытаетесь выполнить развертывание на основе исходного кода. Вы могли бы попробоватьdotnet publishсначала следует развертывание, зависящее от фреймворка, которое снова заставит другой путь кода.

Возможно, пакет сборки не находит ваш файл, но без дополнительной информации сложно сказать.

Другие вопросы по тегам