我知道这个问题已经被问过了,但没有给出任何细节,也没有提供答案。这就是为什么我决定创建一个包含更多细节的问题。我的 Jenkins 2.289.2 在 Linux VM(Ubuntu 18.04.5 LTS)上运行。我使用 React 模板创建了一个新的 dotnet core aps.net Web API 项目。此外,我在存储库中添加了一个 Jenkinsfile,其内容如下:
node{
stage('Clean and checkout'){
cleanWs()
checkout scm
}
stage('Restore'){
sh 'dotnet restore src/TestProject.sln'
}
stage('Clean'){
sh 'dotnet clean src/TestProject.sln'
}
stage('Build'){
sh 'dotnet build src/TestProject.sln --configuration Release'
}
}
恢复和清理工作正常,但 dotnet 构建失败:
/usr/share/dotnet/sdk/3.1.411/Roslyn/Microsoft.CSharp.Core.targets(70,5): error MSB3883: Unerwartete Ausnahme: [/var/lib/jenkins/workspace/ols.TestProject_development/src/TestProject/TestProject.csproj]
/usr/share/dotnet/sdk/3.1.411/Roslyn/Microsoft.CSharp.Core.targets(70,5): error : System.ComponentModel.Win32Exception (11): Resource temporarily unavailable [/var/lib/jenkins/workspace/ols.TestProject_development/src/TestProject/TestProject.csproj]
奇怪的是,如果我使用 putty 并导航到 /var/lib/jenkins/workspace/ols.TestProject_development 并运行 dotnet build src/TestProject.sln --configuration Release 它工作得很好。如果我使用一个 shell 构建步骤创建一个 Jenkins 自由式项目,它也可以正常工作:
dotnet restore src/TestProject.sln
dotnet clean src/TestProject.sln
dotnet build src/TestProject.sln --configuration Release
我也尝试过:
安装 dotnet core SDK 5.0 而不是 3.1
使用 Jenkins 插件 .NET SDK 支持和使用:
dotnetBuild project: 'src/TestProject.sln'
没有任何效果,我不知道为什么它会作为管道构建失败,而不是作为自由式项目。请帮帮我。