【问题标题】:Does my jenkins slave need to have a user named Jenkins?我的詹金斯奴隶需要有一个名为詹金斯的用户吗?
【发布时间】:2018-02-02 00:18:38
【问题描述】:

Jenkins 构建今天开始失败,出现以下错误。

error MSB4175: The task factory "CodeTaskFactory" could not be loaded
from the assembly "C:\Program Files
(x86)\MSBuild\12.0\bin\Microsoft.Build.Tasks.v12.0.dll". Could not
find a part of the path
'C:\Users\Jenkins\AppData\Local\Temp\05all4b4.tmp'.

如果我尝试使用 msbuild14 构建,则会出现类似但略有不同的错误。 C:\Users\Jenkins 路径不存在,我不知道在构建机器上有一个名为 Jenkins 的用户。我认为这显然是问题的一部分,但我在 Jenkins 主从配置文档中没有看到任何建议我需要创建一个名为 Jenkins 的特殊用户帐户。如何解决此错误?如果过去可能已经看到此问题的任何人能告诉我在这种情况下如何解决此问题,我将不胜感激。

主从机都是windows服务器。

【问题讨论】:

    标签: jenkins msbuild


    【解决方案1】:

    这是我解决问题的方法。出于某种原因,我不得不重新创建以下目录结构。 C:\Users**Jenkins\AppData\Local\Temp**

    Jenkins 用户目录已被某种方式删除。没有 Jenkins 用户帐户,并且用户下的子文件夹通常用于用户帐户,所以我永远不会猜到需要存在这样的目录。使用错误消息,我刚刚重新创建了路径,然后从该 Jenkins 目录开始递归地给了 jenkins 服务帐户完全控制权。

    要回答我自己的问题,似乎不需要名为 jenkins 的用户帐户,但在从属设置期间以某种方式创建了具有正确权限的路径。如果该路径由于某种原因被删除,那么 jenkins 服务将无法重新创建它。

    【讨论】:

      【解决方案2】:

      我不确定这是否是您的情况,但我看到了类似的错误,这是由于重命名了 MS Build 程序集。在slave上我们有Visual Studio 2012,同样的版本在master上,项目是用Visual Studio 2012创建的,但我们的构建服务器是新安装的Visual Studio 2015。我在项目文件中更改了CodeTaskFactory MSBuild Task, AssemblyFile 参数,更多信息请查看this stackoverflow question.

      请检查机器上的 Visual Studio/.Net 版本,如果最近安装了某些东西,您也可以在控制面板中查看。

      我没有看到任何要求 Jenkins 从机拥有名为 jenkins 的用户,尽管在 Ubuntu 上,主机上的 jenkins 进程使用用户名 jenkins(我相信 Windows 也是如此)。

      【讨论】:

      • 感谢您努力发布答案。确认詹金斯奴隶不需要詹金斯用户是有帮助的。这确实回答了我帖子标题中的问题,并且我添加了对如何解决我的具体情况的第二个问题的答案。
      猜你喜欢
      • 1970-01-01
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 2018-08-02
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      相关资源
      最近更新 更多