问题描述
我想使用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
解决方法
好,这是正在发生的事情。
-
code is looking at the RuntimeFrameworkVersion in your
.csproj
file。 -
When that is empty,it's going to look at the TargetFramework,并尝试使用正则表达式
netcoreapp(.*)
查找子字符串匹配项。 -
It is expecting that to have a single match,但对于您而言,so you get that error message:
could not find a version of dotnet-runtime to install
。
根据您的.csproj
文件,看来您所拥有的应该没问题。我进行了快速检查,正则表达式可以正常工作并返回版本。
您可以尝试设置RuntimeFrameworkVersion
,该代码路径会稍有不同,并且可能对您有用。
您正在尝试执行source-based deployment。您可以先尝试dotnet publish
,然后再尝试Framework Dependent Deployment,这将再次强制使用不同的代码路径。
可能是buildpack找不到您的文件,但是如果没有更多信息,很难说。