有没有一种方法可以让 VSO vNext 构建清理长目录路径(>260 个字符)

Is there a way that VSO vNext builds can clean up long directory paths (>260 characters)

我已经将 .Net TFS Build vNext 构建为 运行 以下内容:

构建被配置为在检查源之前自动清理,如下所示:

这个版本有两个问题,但这个问题是关于问题 #2 的。

  1. npm安装步骤安装phantomjs失败,因为命令node install.js找不到node,即使节点在系统路径中。

  2. 运行 由于下面的路径太长错误,配置为清理的构建失败。

[错误]指定的路径、文件名或两者都太长。完全限定文件名必须少于 260 个字符,目录名必须少于 248 个字符。

我希望 Clean 设置能够正常工作并清理这些长路径,但我不知道如何使其正常工作。

当我尝试在 TeamCity 中重新创建相同的构建时,Clean 选项工作得很好。另外,我知道如果我可以访问正在清理 运行 的脚本,它可以只使用 *rmdir /S /Q 来删除这些路径。希望 VSO 版本可以 运行 这个或其他有用的东西。

[编辑] - 我已确认这已在最新的构建代理版本 (1.85.1) 中修复

MS 人员告诉我,这是目前 vNext 版本中的一个错误,将在产品的下一个版本中修复。看到此修复程序发布后,我会更新此答案。

从管理控制台,运行:npm install npm -g

运行 npm versionnpm -v 以确保它有效。另请注意,如果您安装了节点,则需要浏览到节点目录并从那里更新它。

另请注意,vso 代理有时会存储本地版本。浏览至 agent/tasks/npm.