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

.NET Core 6项目GitHub Actions构建出现NETSDK1194警告求助

解决NETSDK1194警告:构建解决方案时不支持"--output"选项

问题背景

将项目从.NET Core 3.1迁移至6.0后,使用GitHub Actions构建时出现以下警告:

/usr/share/dotnet/sdk/7.0.203/Current/SolutionFile/ImportAfter/Microsoft.NET.Sdk.Solution.targets(36,5): warning NETSDK1194: The "--output" option isn't supported when building a solution. Specifying a solution-level output path results in all projects copying outputs to the same directory, which can lead to inconsistent builds.

对应的GitHub Actions配置文件如下:

name: Lambda Image Build (CI)
on:
  push:
    branches-ignore:
      - main
      - master
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: '0'
      - name: Setup .NET Core
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: 6.0.x
      - name: Test
        run:  dotnet test
        working-directory: MyProject.Tests
      - name: Setup .NET Core
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: 6.0.x
      - name: Setup NuGet
        uses: NuGet/setup-nuget@v1.0.5
        with:
          nuget-version: latest
      - name: Install dependencies
        run: dotnet restore
        working-directory: MyProject
      - name: Install dotnet lambda
        run: dotnet tool install -g Amazon.Lambda.Tools
        working-directory: MyProject
      - name: Build
        env:
          TAG_VERSION: ${{ steps.bump_version.outputs.new_tag }}
        run: dotnet lambda package .lambda/$( echo ${{ github.repository }} | cut -f 2 -d '/' ).zip s3://${{ secrets.S3_BUCKET }}/$( echo ${{ github.repository }} | cut -f 2 -d '/' )/${{ github.sha }}/$( echo ${{ github.repository }} | cut -f 2 -d '/' ).zip
        working-directory: MyProject
      - name: CHECK
        run: ls -al; echo $REPO_NAME;
        env:
          REPO_NAME: ${{ github.repository }}
        working-directory: ./

问题原因

.NET 6+ SDK严格限制了解决方案级构建时使用--output选项,因为多项目共享同一输出目录会导致文件覆盖、构建结果不一致等问题。你的dotnet lambda package命令执行时,默认针对当前目录的解决方案文件运行,并隐含使用了--output参数,从而触发了该警告。

解决方案

1. 针对单个项目执行lambda package命令

修改Build步骤的run命令,明确指定要打包的项目文件(而非解决方案),示例如下:

dotnet lambda package --project MyProject.csproj .lambda/$( echo ${{ github.repository }} | cut -f 2 -d '/' ).zip s3://${{ secrets.S3_BUCKET }}/$( echo ${{ github.repository }} | cut -f 2 -d '/' )/${{ github.sha }}/$( echo ${{ github.repository }} | cut -f 2 -d '/' ).zip

该命令直接针对单个项目构建,避免了解决方案级别的--output使用场景,可消除警告。

2. 额外优化(可选)

配置中重复执行了Setup .NET Core步骤,可删除其中一个,减少冗余操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:17:13