在Jenkins(Jenkins 2.6)中设置管道构建,复制基于git的构建的示例脚本将得到:“找不到名为MSBuild的工具”。我在中设置了MSBuild工具Manage Jenkins -> Global Tool Configuration。我正在从属节点上运行管道。
Manage Jenkins -> Global Tool Configuration
在从配置中,我在中设置了MSBuild工具路径Node Properties -> Tool Locations。 在构建过程中,它无法获取MSBuild工具路径,如果我在不使用管道的情况下运行相同的源代码(不使用Jenkinsfile),则可以正常工作。
Node Properties -> Tool Locations
请参阅Jenkinsfile语法
pipeline { agent { label 'win-slave-node' } stages { stage('build') { steps { bat "\"${tool 'MSBuild'}\" SimpleWindowsProject.sln /t:Rebuild /p:Configuration=Release" } } } }
我也曾尝试为未刷新的Windows slave更改环境变量。
注意:我已经在从属节点上安装了MS Build工具
在声明性管道语法中,MSBuild的工具较笨拙。这是我必须使用script块处理的方式:
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" } }