使用fileshare时,发布构建工件步骤失败(TFS 2015)

时间:2016-07-23 23:11:59

标签: node.js build visual-studio-2015 azure-devops tfs2015

TFS版本:14.102.25423.0(Tfs2015.Update3)

在我的构建定义中,当我设置

路径参数时
  

发布构建工件步骤

  

工件类型:文件共享

  

\ VSALM \共享

在这个构建步骤的后面执行一个node.js脚本函数,该函数被递归调用,但是有一个bug,并且该函数在尝试创建drop文件夹时反复重复。 失败的node.js脚本是

  

mkdir.js

并位于构建代理文件夹下面:

  

剂\任务\ PublishBuildArtifacts \ 1.0.28 \ node_modules \ shelljs \ SRC \ mkdir.js

失败功能的名称是:

  

mkdirSyncRecursive

错误消息:

  

016-07-23T21:22:02.3703397Z shell.js:内部错误   2016-07-23T21:22:02.3703397Z RangeError:最大调用堆栈大小   超过

- >堆栈溢出 当我进入像

这样的绝对路径时
  

C:\工作空间\共享

我收到此错误:

  

2016-07-23T21:03:07.5727256Z shell.js:内部错误   2016-07-23T21:03:07.5727256Z错误:EEXIST:文件已存在,mkdir   'C:\工作区\共享'

解决方法

当我将drop文件夹设置为(转义的网络共享路径)时:

\\\\VSALM\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)

然后构建步骤成功,但文件不会在共享路径下删除。 在我的情况下,他们被丢弃在这里:

  

C:\ VSALM \共享\ MyBuildDefinition \ 20160723.7 \降

我不知道为什么它不适用于我的共享集:

  

C:\ 的工作区 \共享

但是当我在

中创建网络共享时,它可以正常工作
  

C:\降\共享

并将构建定义中的drop folder路径设置为:

\\\\drop\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)

问题: 有人知道如何修复这个脚本吗?

1 个答案:

答案 0 :(得分:1)

"发布Build Artifacts"当您选择"文件共享"任务时,任务会将构建输出发布到共享网络路径类型。 "最大调用堆栈大小超过"无法找到共享网络路径时通常会发生错误。请检查" Path"您输入的内容是正确的,可以从构建代理访问。格式通常如下:

\\hostnameoripaddress\sharedfolder

使用" \\\\"输入路径时前缀,任务将输出复制到构建代理所在的驱动器的根目录。例如,当您指定" \\\\ VSALM \ share"时,您的构建代理工作文件夹将放置在C驱动器中。作为路径,它会将文件复制到" C:\ VSALM \ Share"文件夹(如果路径不存在,它将创建文件夹。)