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)
问题: 有人知道如何修复这个脚本吗?
答案 0 :(得分:1)
"发布Build Artifacts"当您选择"文件共享"任务时,任务会将构建输出发布到共享网络路径类型。 "最大调用堆栈大小超过"无法找到共享网络路径时通常会发生错误。请检查" Path"您输入的内容是正确的,可以从构建代理访问。格式通常如下:
\\hostnameoripaddress\sharedfolder
使用" \\\\"输入路径时前缀,任务将输出复制到构建代理所在的驱动器的根目录。例如,当您指定" \\\\ VSALM \ share"时,您的构建代理工作文件夹将放置在C驱动器中。作为路径,它会将文件复制到" C:\ VSALM \ Share"文件夹(如果路径不存在,它将创建文件夹。)