小编典典

Jenkins:找不到名为MSBuild的工具

jenkins

在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更改环境变量。

注意:我已经在从属节点上安装了MS Build工具


阅读 463

收藏
2020-07-25

共1个答案

小编典典

声明性管道语法中,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"
  }
}
2020-07-25