如何在詹金斯建造一个多分支项目?

时间:2016-03-02 16:08:48

标签: jenkins msbuild

当我尝试在Jenkins中构建多分支项目时,构建失败,因为msbuild替换了转义"%2F"用" \"

示例错误:

" C:\ Program Files(x86)\ 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 \分支机构\分支机构\科229 \工作区\项目\包\ Microsoft.Net.Compilers.1.0.0 \工具\ Microsoft.CSharp.Core.targets"没找到。确认声明中的路径是否正确,以及该文件是否存在于磁盘上。 [C:\ Program Files(x86)\ Jenkins \ jobs \ ProjectBranches \ branches \ branches%2FBranch-229 \ workspace \ project \ project \ project.csproj]

2 个答案:

答案 0 :(得分:2)

Jira #34564中有关于分支名称编码的全面讨论。

对我有用的拟议解决方法是change workspace dir in Jenkinsfile

node(agent) {

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

    ws(workspace_sane) {
        // ...
    }

}

答案 1 :(得分:0)

我今天刚遇到这个问题。我最终通过覆盖服务器配置中的build和workspace文件夹来解决问题

我将“工作区根目录”设置为“c:/ ws / $ {ITEM_FULL_NAME} / work”,将“构建记录根目录”设置为“c:/ ws / $ {ITEM_FULL_NAME} / builds”

ITEM_FULL_NAME是作业的名称,由于作业名称有“/”而不是%2F,因此最终会使文件夹类似于c:\ ws \ project \ branch \ name \ work 。这应该可以解决您的问题。