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

Tfs 是否有一种方法可以让VSO vNext构建清理长目录路径(>;260个字符),tfs,tfsbuild,azure-devops,Tfs,Tfsbuild,Azure Devops,我已设置了一个.Net生成以运行以下操作: npm安装 吞咽 VisualStudio解决方案构建 构建配置为在检查以下源之前自动清理: 我对这个构建有两个问题,但这个问题与问题2有关 npm安装步骤无法安装phantomjs,因为命令node install.js无法找到节点,即使节点位于系统路径中 由于下面的路径太长错误,运行配置为清除的生成失败 [错误]指定的路径、文件名或两者都太长。完全限定文件名必须少于260个字符,目录名必须少于248个字符。 我希望干净的环境能够正常工作并

我已设置了一个.Net生成以运行以下操作:

  • npm安装
  • 吞咽
  • VisualStudio解决方案构建
构建配置为在检查以下源之前自动清理:

我对这个构建有两个问题,但这个问题与问题2有关

  • npm安装步骤无法安装phantomjs,因为命令node install.js无法找到节点,即使节点位于系统路径中

  • 由于下面的路径太长错误,运行配置为清除的生成失败

  • [错误]指定的路径、文件名或两者都太长。完全限定文件名必须少于260个字符,目录名必须少于248个字符。 我希望干净的环境能够正常工作并清理这些长长的路径,但我不知道如何让它正常工作


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

    [EDIT]-我已确认最新的构建代理版本(1.85.1)中已修复了此功能


    我已经被MS Peops告知,这是vNext构建中的一个bug,将在产品的下一个版本中修复。一旦我看到此修复程序发布,我将更新此答案。

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

    运行
    npm-version
    npm-v
    以确保其工作正常。另请注意,如果已安装节点,则需要浏览到节点目录并从那里进行更新


    还请注意,vso代理有时存储本地版本。浏览到
    agent/tasks/npm

    您可以将Clean设置为
    false
    ,并利用预构建脚本选项进行手动清理。谢谢Evan,我不知道它有任何预构建挂钩。是否有关于这方面的文件?请参见第3步。它应该在Build或Options选项卡下,我相信这篇文章描述的是基于XAML的VSO构建。我使用的是vNext构建,它只能从VSO本身进行配置,并且不提供预构建/后构建选项。啊,因此,您应该在解决方案构建之前添加一个构建步骤,以运行手动清理命令。您如何更新您的代理(如果需要,还有任务)Dan?我只是在尝试运行一个吞咽任务时,实际上遇到了字符限制错误。最大路径问题仍然存在限制。此特定修复仅适用于存储库“清理”设置。例如,我不能使用nuget restore任务,除非我在npm安装任务之前这样做,因为在运行“npm安装我将有超过260个字符的目录限制。在这种情况下,重新订购为我解决了问题。如果你有更多的细节,请发布另一个问题,我会看看我是否能提供帮助。我通过升级到预发布的NPM v3版本而通过了我的问题。显然,文件夹的扁平化是npm在V3之后安装的。如何将VSO构建代理升级到npm V3?