【问题标题】:Continuous Integration with Blue Ocean, Github and Nuget causes path too long与 Blue Ocean、Github 和 Nuget 的持续集成导致路径太长
【发布时间】:2018-07-25 09:23:45
【问题描述】:

NUnit.Extension.VSProjectLoader.3.7.0

我尝试让构建链与 Jenkins Blue Ocean 一起使用,其中源位于 GitHub 中,其他依赖项位于 nuget 中。

当我恢复包时,在特定包 NUnit.Extension.VSProjectLoader.3.7.0 之后出现错误:

Errors in packages.config projects

    The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

在代理机器上,路径非常短:C:\guinode\ 加上额外的长度,使包文件夹的大小如下:

MyGitProject正在替换我的实际项目名称,长度相等。

C:\guinode\workspace\MyGitProject_master-CFRRXMXQEUULVB4YKQOFGB65CQNC4U5VJKTARN2A6TSBK5PBATBA\packages

在代理机器上检查包显示 NUnit.Extension.VSProjectLoader.3.7.0 已完全加载。

检查本地安装并替换包的第一个路径我可以找到两个 260 个字符或更长的文件。 它们属于一个内部项目,所以我有机会影响它。

所有目录均不超过 248 个字符。

所以我的直接解决方案是重新部署内部参考包。

我未来参考的问题是我是否可以对packages 位置或workspace\MyGitProject_master-CFRRXMXQEUULVB4YKQOFGB65CQNC4U5VJKTARN2A6TSBK5PBATBA 做一些事情,以便我默认保存一些字符。

【问题讨论】:

    标签: jenkins github nuget jenkins-blueocean


    【解决方案1】:

    根据microsoft documentation可以修改260长度规则。

    • 如果您为文件添加前缀“\\?\”,例如:“\\?\C:\guinode\workspace...”,则将使用长路径(多于 32000 个字符)。我希望将JENKINS_HOME 设置为这种路径使所有进程都使用它(我不确定)
    • 在最新的 Windows 版本(10.1607、2016?)上,注册表中有一个选项可以启用长路径。将 1 设置为以下键:HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD) 并重新启动该过程。

    【讨论】:

    • 好主意,但我无法让它在环境中工作。 '?' 在代理启动和注入 nuget restore -PackagesDirectory 参数时都被识别为非法字符。看起来像这样的东西可以在 Windows 10 上运行。但这不适用于我的构建服务器。
    猜你喜欢
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    相关资源
    最近更新 更多