2

由于路径长度最终失控,我的 DNU 发布步骤在 TeamCity 中失败:

[14:35:29][Step 1/1] Using Package dependency Microsoft.Extensions.Configuration.FileProviderExtensions 1.0.0-rc1-final
[14:35:29][Step 1/1]     Source C:\Users\TFSSERVICE\.dnx\packages\Microsoft.Extensions.Configuration.FileProviderExtensions\1.0.0-rc1-final
[14:35:29][Step 1/1]     Target D:\TeamCity\buildAgent\work\31745f64510dfced\artifacts\Company.Auth.IdentityProvider\approot\packages\Microsoft.Extensions.Configuration.FileProviderExtensions\1.0.0-rc1-final
[14:35:29][Step 1/1] Using Package dependency Microsoft.Extensions.FileSystemGlobbing 1.0.0-rc1-final
[14:35:29][Step 1/1]     Source C:\Users\TFSSERVICE\.dnx\packages\Microsoft.Extensions.FileSystemGlobbing\1.0.0-rc1-final
[14:35:29][Step 1/1]     Target D:\TeamCity\buildAgent\work\31745f64510dfced\artifacts\Company.Auth.IdentityProvider\approot\packages\Microsoft.Extensions.FileSystemGlobbing\1.0.0-rc1-final
[14:35:29][Step 1/1] Error: 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.
[14:35:29][Step 1/1] Process exited with code 1
[14:35:29][Step 1/1] Step DNU publish (Command Line) failed

我已经更新了我的结帐规则代理路径,以使项目更接近构建代理目录。

一种可能的解决方案是将发布输出设置为更接近驱动器根目录。但是,TeamCity DNU 发布构建步骤不支持更改输出目录。此外,我将负责管理此目录。

一个理想的解决方案是对构建代理进行最少的手动配置,因为我有几个。

4

3 回答 3

3

一种可能的解决方案是修改 Team City 构建代理配置以使用较短的工作文件夹路径。即改变

D:\TeamCity\buildAgent\work

像这样的东西

D:\work

甚至

D:\w

于 2016-01-21T21:38:25.937 回答
3

我们(ASP.NET 团队)使用 TeamCity 并达到了 Windows 的路径限制。不幸的是,这是由 node.js 路径引起的,我们无法控制它,因此我们不得不将工作目录移动到更靠近驱动器的根目录。现在在D:\ba(ba = build agent)。

因此,我现在为您提供的唯一解决方案是尝试使项目更接近驱动器的根目录。

DNU 发布命令似乎可以在 Windows 10 上正常运行,但不能在任何以前的 Windows 版本上运行,包括 Server 2012 R2。截至目前,我只能怀疑术士的黑魔法(转换为NT路径并返回?)

dnu应该可以在 Win 7(带有最新 SP)、Win 2008 R2、Win 8、Win 2012、Win 10 和 Win 2016 Server 上运行。如果您遇到特定平台的任何问题,请在 Github (aspnet) 上打开一个错误

于 2016-01-23T08:28:22.740 回答
0

您可以使用特殊的短名称共享文件夹。

同样在这里,您可以找到类似的问题,但答案很少。

于 2016-01-21T22:00:00.830 回答