部署.NET 7 Web API到Azure时遇--output选项不支持错误的解决方法
解决GitHub Actions部署Azure Web App时的
--output选项错误 错误原因
执行dotnet publish时如果未指定具体项目文件(.csproj),命令会默认尝试发布整个解决方案(.sln),而针对解决方案的dotnet publish不支持-o/--output选项——因为解决方案包含多个项目,无法将所有输出统一到单一目录。你的Workflow中dotnet publish命令未指定项目路径,因此触发了这个错误。
修复步骤
修改Workflow中的dotnet publish步骤,指定你的Web API项目的.csproj文件路径:
- 确认项目的.csproj文件路径,比如你的项目文件夹名为
WeatherForecastAPI,路径通常是./WeatherForecastAPI/WeatherForecastAPI.csproj(请根据实际项目名称调整)。 - 更新Workflow中的
dotnet publish命令:
修改后的Workflow片段
- name: dotnet publish run: dotnet publish ./你的项目文件夹名/你的项目名.csproj -c Release -o ${{env.DOTNET_ROOT}}/myapp
可选优化:合并build和publish步骤
由于dotnet publish会自动执行build操作,你可以删除单独的Build with dotnet步骤,减少冗余操作,修改后的build jobs如下:
jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Set up .NET Core uses: actions/setup-dotnet@v1 with: dotnet-version: '7.x' include-prerelease: true - name: dotnet publish run: dotnet publish ./你的项目文件夹名/你的项目名.csproj -c Release -o ${{env.DOTNET_ROOT}}/myapp - name: Upload artifact for deployment job uses: actions/upload-artifact@v2 with: name: .net-app path: ${{env.DOTNET_ROOT}}/myapp
完成修改后,提交更新后的Workflow文件到GitHub,重新触发部署即可解决该错误。
内容的提问来源于stack exchange,提问作者Musaffar Patel
相关产品推荐
相关产品推荐

