2014-01-20 109 views
5

我正在編寫構建過程模板的自定義活動。構建活動時遇到以下問題。TFS生成錯誤 - 「指定的路徑,文件名或兩者都太長...」

>XamlBuildTask : error XC1043: Extension 'Microsoft.Activities.Build.BeforeInitializeComponentExtension' threw an exception of type 'System.IO.PathTooLongException' : '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.'. 

您有什麼想法嗎?請幫忙!

回答

4

我找到一個提示here。希望它對你有所幫助。

目前國內有兩種解決方法:

降低命名空間中的工作流程X:類屬性。這使得 生成的文件具有較短的名稱。

使用subst或mklink命令到 創建映射,以便解決方案所在的路徑變成小得多的 。在團隊構建中,工作區映射需要同等修改 。

+0

感謝您的幫助! –

+0

我的構建步驟將文件存儲在「工件」目錄中,並且我的發佈步驟以不同的名稱發佈此目錄。看來,巧合的是,TFS代理使用默認名稱「artifacts」作爲發佈目的地。這樣或那樣,我的「工件」目錄遞增與每個生成直到我得到有關超過最大路徑長度的錯誤。 –

0

在2015年這仍然發生TFS

這是最好的答案,我得到了改變建立代理屬性 Properties to save path space

  1. 生成代理屬性對話框定義「工作目錄」對於構建代理,默認爲 「$(SystemDrive)\ Builds \ $(BuildAgentId)\ $(BuildDefinitionPath)」。基於 在上面的鏈接,我打算去 「$(SystemDrive)\ B \ $(BuildDefinitionId)」 - 應該取 「uilds」離開基本目錄,TFS項目名稱19個字符), 反斜槓和構建名稱(7個字符)輸出,並用一個32位數字替換它們(應該最多10位數字,但 ,因爲它從1開始,它更可能爲了保存我最少23個字符
  2. 我可能沒有能夠縮短$(SourceDir),但它只是「$(BuildDir)\ Sources」,對吧?我可以配置構建拉 代碼「$(BuildDir)\ S」而不是「$(SourceDir)」,而我 應該保存另外6個字符,讓我保存29個字符, 應該足夠了
相關問題