2016-01-21 48 views
2

我DNU發佈一步TeamCity的失敗失敗,因爲路徑長度最終失控:TeamCity的DNU公佈路徑長度太長

[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發佈構建步驟不支持更改輸出目錄。另外,我會負責管理這個目錄。

一個理想的解決方案將涉及最少的手動配置到構建代理,因爲我有幾個。

回答

2

我們(ASP.NET團隊)使用TeamCity並在Windows上達到路徑限制。不幸的是,這是由一個node.js路徑引起的,我們無法控制它,因此我們不得不將工作目錄移到驅動器的根目錄。現在在D:\ba(ba = build agent)。

因此,我現在唯一的解決方案是嘗試讓項目更接近驅動器的根。

DNU發佈命令似乎在Windows 10上正常運行,但不包括任何以前的Windows版本,包括Server 2012 R2。 截至目前,我只能懷疑術士魔法(轉換爲NT路徑和回來?)

dnu應在Win 7中運行(與最新的SP),2008年贏R2,運8,運2012年,贏10,贏2016服務器。如果您遇到特定平臺的任何問題,請在Github上打開一個錯誤(aspnet)

+0

我確實實現了一個自定義輸出目錄作爲臨時解決方案,因爲這是違反路徑長度的臨界點。使構建代理更接近驅動器的根源是理想的解決方案,但對於我正在使用的設置而言,由於存在遺留構建配置錯誤的問題,因此將涉及更多。 –

+0

只要DNU在不同版本的Windows上發佈行爲奇怪,它就是難以捉摸的。我們的一些Windows 10計算機沒有問題發佈在另一臺計算機上具有路徑長度違規的內容。但是,Windows 10計算機在某些時候可能並且將會違反路徑長度。有可能是PEBKAC。 –

3

一個可能的解決方案是修改Team City構建代理配置,以使用較短的路徑作爲工作文件夾。即改變

D:\TeamCity\buildAgent\work

要像

D:\work

甚至

D:\w

0

您可以用特殊的,短的名稱共享文件夾。

在這裏你可以找到similar question,很少有答案。