2016-03-02 42 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) { 
     // ... 
    } 

} 
相关问题