当前位置: 首页 > 面试题库 >

Jenkins:找不到名为MSBuild的工具

鲁望
2023-03-14
问题内容

在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工具


问题答案:

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


 类似资料:
  • 我有一个由大量项目(C和C#)组成的解决方案。我将解决方案升级到VS2015,因此大多数解决方案的工具集版本现在设置为V140,但少数项目需要保留在V110(第三方库等)中。当我在Visual Studio 2015中构建解决方案时,它构建得很好,但当TeamFoundationServer尝试构建它时,它失败,出现以下错误: C:\ProgramFiles(x86)\MSBuild\Micros

  • 在这个linux服务器上,我有一个名为“myuser”的用户。对于此用户,在回显路径时,我得到这个: /home/myuser/bin:/home/myuser/.local/bin:/home/myuser/.nvm/versions/node/v6.11.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/us

  • 我的应用程序无法启动。它由Spring Boot+JPA+SQLite组成。但是Spring Boot和MySQL都运行得很好。我不明白为什么会这样。 错误是 找不到名为“Entity ManagerFactory”的bean O.S.B.D.LoggingFailureAnalysisReporter: **********************************************

  • 问题内容: 我在Mac OS上运行Jenkins。我有一个试图在目标之一中执行的ant构建文件。我有正确的路径,因为其中包含了android sdk 和文件夹,但仍然出现以下错误。 如果我将描述的jar从lib文件夹移到文件夹,则会遇到与另一个jar相关的其他类似错误,因此似乎无法从lib文件夹获取此jar。请帮忙。 问题答案: 我解决了我的问题。我有正确的路径和sdk安装目录。问题是我的Jenk

  • 我正在运行下面的管道,它为DotNetCore2.2运行“构建+声呐扫描程序分析”阶段 舞台设置如下 我已经按照Sonarqube文档的建议在全局配置中安装了该工具 该dll存在并且权限已分配给Jenkins 该dll是可执行的 在该路径中手动运行时的dll-它运行 提前感谢你的帮助。