【问题标题】:How to msbuild a Multi-Branch Project in jenkins?如何在 jenkins 中构建多分支项目?
【发布时间】:2016-06-15 14:42:15
【问题描述】:

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

示例错误:

“C:\Program Files (x86)\Jenkins\jobs\ProjectBranches\branches\branches%2FBranch-229\workspace\project\project\project.csproj”(默认目标)(1) -> C:\Program文件 (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)\Jenkins\jobs\ProjectBranches\branches\branches%2FBranch-229\workspace\project\project\project.csproj]

【问题讨论】:

    标签: jenkins msbuild


    【解决方案1】:

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

    一个对我有用的解决方法是change workspace dir in Jenkinsfile

    node(agent) {
    
        def workspace_orig = pwd()
        def workspace_sane = workspace_orig.replaceAll("%", "_")
    
        ws(workspace_sane) {
            // ...
        }
    
    }
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-29
        • 2012-03-07
        • 2020-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-07
        相关资源
        最近更新 更多