我的jenkins奴隶需要一个名叫Jenkins的用户吗?

时间:2018-02-02 00:18:38

标签: jenkins msbuild

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服务器。

2 个答案:

答案 0 :(得分:2)

以下是我在案例中解决问题的方法。出于某种原因,我不得不重新创建以下目录结构。 C:\用户**詹金斯\应用程序数据\本地\温度**

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

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

答案 1 :(得分:1)

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

请检查机器上的Visual Studio / .Net版本,您还可以在控制面板中看到最近是否安装了某些内容。

我没有看到任何要求Jenkins slave机器的用户名为jenkins,虽然在Ubuntu上,主机上的jenkins进程是用户名jenkins(我相信它对Windows来说是一样的。)