詹金斯找不到msbuild

时间:2014-06-04 10:52:19

标签: jenkins msbuild windows-server-2012

我已经在Windows Server 2012上安装了Jenkins,这一切都运行良好。但是,一旦我尝试配置MSBuild和VS Code指标插件,我收到以下错误:

C:\ Windows \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe不是Jenkins主服务器上的目录(但可能存在于某些从服务器上)

我检查了路径并且它们是正确的,但Jenkins无法访问它们。

任何人都可以建议可能出错的地方。

由于

7 个答案:

答案 0 :(得分:16)

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe

詹金斯非常关心你的要求。 MSBuild.exe 可执行文件,而不是报告的目录。输入框期望您识别包含MSBuild.exe 的文件夹,但执行的作业 MSBuild希望您提供文件名。 Job和Configuration Manager之间的这种不一致的方法是Add the MSBuild插件配置,而不在Path to MsBuild输入中提供可执行文件的名称,以满足"添加插件的验证要求&# 34;页。

添加插件后,您可以修改Path to MsBuild以包含可执行文件的名称(当然,这是MSBuild.exe),而不是验证错误,您将收到警告。

Ignore the warning. 
Save it anyway.  

它将绕过添加插件所需的初始验证,并且只会工作。"

Save it anyway

您的Jenkins服务可能仍然需要被授予对文件系统的访问权限,以允许它与桌面交互"正如其他海报所提到的那样。 Jenkins service

但是您的主要问题是插件配置与使用该配置的代理冲突,并且为了使用该插件执行构建,您必须使用解决方法。

答案 1 :(得分:6)

我有同样的问题,我的解决方案是:

如果您将Jenkins作为Window的服务运行,您可能需要启用该服务才能与桌面交互。执行以下操作:

打开服务模块(按:WindowsKey + R> Services.msc)

  1. 右键单击Jenkins服务,然后选择"属性"
  2. 在"登录"选项卡,运行为"本地系统帐户"并打勾 "允许服务与桌面交互"复选框
  3. - 或 -

    您可以通过命令行运行Jenkins。即:" java -jar jenkins.war" (jenkins.war文件位于Jenkins安装目录中。)

    干杯,

    学家

答案 2 :(得分:5)

从路径中的msbuild.exe末尾删除扩展名“.exe”,以避免出现警告:C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild

答案 3 :(得分:3)

所以你有两个Jenkins服务器,一个是master(没有msbuild),另一个是slave(这个有一个msbuild)。当您的作业运行时(在主服务器上),msbuild步骤失败,因为它在主服务器上不存在。

您需要强制您的作业仅在使用msbuild的服务器上运行,而不是在主服务器上运行。这是你如何做到这一点:

  1. 打开其上有msbuild的节点的配置
  2. 标签字段中添加msbuild
  3. 保存节点配置
  4. 打开作业配置
  5. 高级项目选项部分上方,找到限制此项目可以运行的位置复选框并进行检查
  6. 标签表达字段中添加msbuild
  7. 保存工作
  8. 建立工作

答案 4 :(得分:0)

  • 主服务器上是否存在C:\Windows\Microsoft.NET\Framework\v3.5\
  • Jenkins用户是否拥有此文件夹的权限?

答案 5 :(得分:0)

我也看到" ...不是詹金斯大师的目录......"错误消息,但是当我尝试构建它时仍然有效。

不要忘记为您的项目选择MS Build版本而不是(默认)。

请参阅:build .net application in Jenkins using MSBuild

答案 6 :(得分:0)

看起来这个问题已在1.26版本中得到解决:JENKINS-28679