2016-03-02 128 views
6

當我嘗試在詹金斯的MSBuild多分支項目,因爲MSBuild的更換逃亡 「%2F」 與構建失敗 「\」如何在jenkins中建立一個多分支項目?

典型的錯誤:

「C:\ Program Files文件(86 )\ Jenkins \ jobs \ ProjectBranches \ branches \ branches%2FBranch-229 \ workspace \ project \ project \ project.csproj「(默認目標)(1) - > C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin \ Microsoft.CSharp.CurrentVersion.targets(321,5):錯誤MSB4019:導入的項目「C:\ Program Files(x86)\ Jenkins \ jobs \ ProjectBranches \ branches \ branches \ Branch-229 \ workspace \ project \ packages \ Microsoft .Net.Compilers.1.0.0 \ tools \ Microsoft.CSharp.Core.targets「找不到。確認聲明中的路徑是正確的,並且該文件存在於磁盤上。 [C:\ Program Files文件(x86)的\詹金斯\工作\ ProjectBranches \分支\分支%2FBranch-229 \工作區\項目\項目\ project.csproj]

回答

0

我正好遇到這個問題今天。我最終通過覆蓋服務器配置中的構建和工作區文件夾來解決問題我設置了「工作區根目錄」爲「c:/ ws/$ {ITEM_FULL_NAME}/work」和「構建記錄根目錄」爲「 c:/ ws/$ {ITEM_FULL_NAME}/builds「

ITEM_FULL_NAME是作業的名稱,由於作業的名稱有一個」/「而不是%2F,它最終會使文件夾類似到c:\ ws \ project \ branch \ name \ work。這應該可以解決您的問題。

1

Jira #34564中有關於分支名稱編碼的全部討論。

一個propsed變通爲我的作品是change workspace dir in Jenkinsfile

node(agent) { 

    def workspace_orig = pwd() 
    def workspace_sane = workspace_orig.replaceAll("%", "_") 

    ws(workspace_sane) { 
     // ... 
    } 

} 
相關問題