You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab Pipeline执行报错:eval: line 159: unexpected EOF 求解决

GitLab Pipeline 执行失败报错解决

错误原因

报错eval: line 159: unexpected EOF while looking for matching是因为Pipeline脚本中存在引号不匹配的语法错误,导致Shell解析时无法找到对应的闭合引号,同时还有路径转义的错误。

具体问题与修复

1. NuGet还原命令语法错误

原脚本中:

'env:NUGET_PATH" restore'
  • 引号不匹配:单引号开头却用双引号结尾,造成解析失败。
  • PowerShell调用外部命令语法错误:需要用&来执行变量指向的可执行文件。

修复为:

& "$env:NUGET_PATH" restore

2. MSBUILD发布路径转义错误

原MSBUILD命令中的/p:publishUrl=.in\publish:

  • .in是错误的转义写法,会被解析为退格符,实际要表示当前目录下的bin文件夹,应改为.\bin。

修复后的MSBUILD命令:

& "$env:MSBUILD_PATH" .\Solution1.sln /p:Configuration=Release /p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=.\bin\publish /clp:ErrorsOnly

修复后的完整Pipeline配置

stages:          # List of stages for jobs, and their order of execution
  - build
  - test
  - deploy-uat
   
variables:
  NUGET_PATH: 'C:\GitLab-Runner\nuget.exe'
  MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe'
  TEST_TOOL_EXE: 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\Extensions\TestPlatform\vstest.console.exe'

build-job:       # This job runs in the build stage, which runs first.
  stage: build
  script:
    - echo "$CI_PROJECT_DIR"
    - '& "$env:NUGET_PATH" restore'
    - echo "Clean & Build Solution"
    - '& "$env:MSBUILD_PATH" .\Solution1.sln /p:Configuration=Release /p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=.\bin\publish /clp:ErrorsOnly'    
  artifacts:
    expire_in: 2 days
    paths:
      - "**/bin"
      - "**/obj"
  rules:
    - if: ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main")

内容的提问来源于stack exchange,提问作者karthick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 08:35:28