Jenkins:找不到名为MSBuild的工具
在Jenkins(Jenkins
2.6)中设置管道构建,复制基于git的构建的示例脚本将得到:“找不到名为MSBuild的工具”。我在中设置了MSBuild工具Manage
Jenkins -> Global Tool Configuration。我正在从属节点上运行管道。
在从配置中,我在中设置了MSBuild工具路径Node Properties -> Tool Locations
。
在构建过程中,它无法获取MSBuild工具路径,如果我在不使用管道的情况下运行相同的源代码(不使用Jenkinsfile),则可以正常工作。
请参阅Jenkinsfile语法
pipeline { agent { label 'win-slave-node' }
stages {
stage('build') {
steps {
bat "\"${tool 'MSBuild'}\" SimpleWindowsProject.sln /t:Rebuild /p:Configuration=Release"
}
}
}
}
我也曾尝试为未刷新的Windows slave更改环境变量。
回答:
在声明性管道语法中,MSBuild的工具较笨拙。这是我必须使用script
块处理的方式:
pipeline { agent {
label 'win-slave-node'
}
stages {
stage('Build') {
steps {
script {
def msbuild = tool name: 'MSBuild', type: 'hudson.plugins.msbuild.MsBuildInstallation'
bat "${msbuild} SimpleWindowsProject.sln"
}
}
}
}
}
在较旧的脚本管道语法中,可能是这样的:
node('win-slave-node') { def msbuild = tool name: 'MSBuild', type: 'hudson.plugins.msbuild.MsBuildInstallation'
stage('Checkout') {
checkout scm
}
stage('Build') {
bat "${msbuild} SimpleWindowsProject.sln"
}
}
以上是 Jenkins:找不到名为MSBuild的工具 的全部内容, 来源链接: utcz.com/qa/407151.html