当我尝试在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]
答案 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 。这应该可以解决您的问题。