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

使用setup-dotnet@v4时dotnet publish报MSB1008错误的原因

问题:切换setup-dotnet至v4后dotnet publish报MSB1008错误

项目工作流使用setup-dotnet@v1时构建与发布均正常;切换至setup-dotnet@v4后,dotnet publish命令出现MSB1008错误(提示仅能指定一个项目),切回v1则恢复正常。

报错详情

Run dotnet publish ./Project/Project.csproj -c Release -o C:\Program Files\dotnet/myapp/
MSBUILD : error MSB1008: Only one project can be specified.
    Full command line: 'C:\Program Files\dotnet\sdk\8.0.302\MSBuild.dll -maxcpucount -verbosity:m -nologo -restore -target:Publish --property:_IsPublishing=true -property:PublishDir=C:\Program -property:_CommandLineDefinedOutputPath=true -property:Configuration=Release -property:DOTNET_CLI_DISABLE_PUBLISH_AND_PACK_RELEASE=true ./Project/Project.csproj Files\dotnet/myapp/ -distributedlogger:Microsoft.DotNet.Tools.MSBuild.MSBuildLogger,C:\Program Files\dotnet\sdk\8.0.302\dotnet.dll*Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingLogger,C:\Program Files\dotnet\sdk\8.0.302\dotnet.dll'
  Switches appended by response files:
Switch: Files\dotnet/myapp/

For switch syntax, type "MSBuild -help"
Error: Process completed with exit code 1.

相关工作流片段

- name: Set up .NET Core
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '8.x' 

      - name: Build with dotnet
        run: dotnet build ./Project/Project.csproj --configuration Release

      - name: dotnet publish
        run: dotnet publish ./Project/Project.csproj -c Release -o ${{env.DOTNET_ROOT}}/myapp/

错误原因及解决方法

原因

  • setup-dotnet@v4中,DOTNET_ROOT环境变量的值为C:\Program Files\dotnet,路径包含空格。
  • 执行dotnet publish命令时,未对带空格的输出路径加引号,导致命令被解析为-o C:\Program Files\dotnet/myapp/,MSBuild将空格后的Files\dotnet/myapp/误认为是第二个项目参数,触发"仅能指定一个项目"的MSB1008错误。
  • setup-dotnet@v1中DOTNET_ROOT可能指向无空格路径,或旧版dotnet CLI对参数空格处理更宽松,因此未出现问题。

解决方法

  • 给输出路径添加双引号包裹,避免空格拆分参数:
    - name: dotnet publish
      run: dotnet publish ./Project/Project.csproj -c Release -o "${{env.DOTNET_ROOT}}/myapp/"
    
  • 或者改用无空格的输出目录,比如:
    - name: dotnet publish
      run: dotnet publish ./Project/Project.csproj -c Release -o ./publish/
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 13:55:13