部署期间的主要.NetCore 3.1 dotnet运行时错误

问题描述

我想使用Bamboo的Pivotal部署我的项目。在部署 .NetCore 3.1 项目期间,出现错误无法安装dotnet-runtime:找不到要安装的dotnet-runtime版本” 。部署堆栈设置为 cflinuxfs3

我尝试在.csproj文件中指定dotnet运行时版本(3.1和3.1.5),但是它遇到了相同的错误,因此我将其删除

我还创建了一个buildpack.yml文件,并在其中指定.netcore sdk版本为3.1.x。

我正在共享csproj和manifest.yml文件中的属性组。

-错误日志-

正在下载应用程序包...
下载的应用程序包(6.4M) -----> Dotnet-Core Buildpack版本2.3.12
----->提供Dotnet核心 ----->安装libunwind 1.4.0
复制[/tmp/buildpacks/b7bd2a36eb284e204524c677d2dbbfa2/dependencies/a54cfafce3d2a14e4f96777d5fd471f4/libunwind_1.4.0_linux_noarch_cflinuxfs3_05e08b22.tgz] 使用认的SDK
----->安装dotnet-sdk 3.1.301
复制[/tmp/buildpacks/b7bd2a36eb284e204524c677d2dbbfa2/dependencies/b422801667458a262ba26a3117b93e4f/dotnet-sdk_3.1.301_linux_x64_any-stack_80a771.04.tar.xz]

----->安装dotnet-runtime 3.1.5
复制[/tmp/buildpacks/b7bd2a36eb284e204524c677d2dbbfa2/dependencies/40b5a460524fe7f1795c876445349a31/dotnet-runtime_3.1.5_linux_x64_any-stack_1aa84612.tar.xz]

----->终结点网核心
错误:无法安装dotnet-runtime:找不到要安装的dotnet-runtime版本。无法编译Droplet:无法 运行finalize脚本:退出状态12退出状态223单元格 ffe536bc-374c-46b5-a620-e3366dab6b22停止实例 b71ecb48-0083-4fd1-8f59-3a77b05de0e0

错误登台应用程序:Build Pack编译中的应用登台失败 阶段

-.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. code is looking at the RuntimeFrameworkVersion in your .csproj file

  2. When that is empty,it's going to look at the TargetFramework,并尝试使用正则表达式netcoreapp(.*)查找子字符串匹配项。

  3. It is expecting that to have a single match,但对于您而言,so you get that error messagecould not find a version of dotnet-runtime to install

根据您的.csproj文件,看来您所拥有的应该没问题。我进行了快速检查,正则表达式可以正常工作并返回版本。

您可以尝试设置RuntimeFrameworkVersion,该代码路径会稍有不同,并且可能对您有用。

您正在尝试执行source-based deployment。您可以先尝试dotnet publish,然后再尝试Framework Dependent Deployment,这将再次强制使用不同的代码路径。

可能是buildpack找不到您的文件,但是如果没有更多信息,很难说。