【发布时间】:2016-11-27 13:59:59
【问题描述】:
TFS 版本:14.102.25423.0 (Tfs2015.Update3)
在我的构建定义中,当我设置 Path 的参数时
发布构建工件步骤
与
工件类型:文件共享
到
\VSALM\共享
在幕后,此构建步骤执行递归调用的 node.js 脚本函数,但存在一个错误,该函数在尝试创建放置文件夹时一遍又一遍地重复自己**。 失败的 node.js 脚本是
mkdir.js
并位于构建代理文件夹下方:
agent\tasks\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:\workspaces\share
我收到此错误:
2016-07-23T21:03:07.5727256Z shell.js:内部错误 2016-07-23T21:03:07.5727256Z 错误:EEXIST:文件已存在,mkdir 'C:\workspaces\share'
解决方法
当我将放置文件夹设置为(转义的网络共享路径)时:
\\\\VSALM\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)
然后构建步骤成功,但文件不会放在共享路径下。 在我的情况下,它们被丢弃在这里:
C:\VSALM\share\MyBuildDefinition\20160723.7\drop
我不知道为什么它不适用于我的共享设置为:
C:\工作区\share
但是当我在中创建网络共享时它可以工作
C:\drop\share
并将我的构建定义中的放置文件夹路径设置为:
\\\\drop\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)
问题: 有人知道如何修复这个脚本吗?
【问题讨论】:
-
构建代理上是否存在共享文件夹?
-
是的,共享文件夹在构建代理上。
-
共享文件夹是可以访问的。
标签: node.js build visual-studio-2015 azure-devops tfs-2015