Asp.net TeamCity DNU发布因路径长度过长而失败

Asp.net TeamCity DNU发布因路径长度过长而失败,asp.net,teamcity,asp.net-core,dnx,dnu,Asp.net,Teamcity,Asp.net Core,Dnx,Dnu,由于路径长度最终失控,我的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.Configura

由于路径长度最终失控,我的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发布生成步骤不支持更改输出目录。另外,我将负责管理这个目录


理想的解决方案是对生成代理进行最少的手动配置,因为我有几个这样的配置。

一个可能的解决方案是修改Team City生成代理配置,以便为工作文件夹使用较短的路径。i、 e.变化

D:\TeamCity\buildAgent\work

差不多

D:\work

甚至


D:\w

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

您也可以在这里找到一些答案。

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

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

DNU publish命令似乎在Windows 10上正常运行,但在任何以前的Windows版本(包括Server 2012 R2)上都无法正常运行。 到目前为止,我只能怀疑术士黑魔法(转换到NT路径和返回?)


dnu
应可用于Win 7(最新SP)、Win 2008 R2、Win 8、Win 2012、Win 10和Win 2016服务器。如果您遇到特定平台的任何问题,请在Github(aspnet)上打开一个bug。

我确实实现了一个自定义输出目录作为临时解决方案,因为这是路径长度冲突的临界点。使构建代理更接近驱动器的根目录是理想的解决方案,但对于我正在使用的安装,将涉及更多的问题,因为存在错误配置的旧版本。就DNU发布在不同版本的Windows上的行为而言,它一直是难以捉摸的。我们的一些Windows 10计算机在另一台计算机上发布路径长度冲突的内容时没有问题。但是,Windows 10计算机在某些时候可能会并且将有路径长度冲突。很可能是PEBKAC。