首页 > 解决方案 > 与 Blue Ocean、Github 和 Nuget 的持续集成导致路径太长

问题描述

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以便我默认保存一些字符。

标签: jenkinsgithubnugetjenkins-blueocean

解决方案


根据微软文档,可以修改 260 长度规则。

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

推荐阅读