asp.net - GitHub 操作无法发布到 Azure
问题描述
我正在尝试使用 GitHub 操作和 Azure 构建和部署 ASP.NET Web 应用程序。
我已经使用 VS2017 成功创建并发布到 Azure 一个小应用程序 (.NET 4.8)。
现在我正在尝试设置自动部署,并且我正在使用在设置部署时从 Azure 获得的基本 GitHub 操作工作流。
运行操作时出现此错误:
D:\a\pathtomyproject\myprojectname.csproj : error MSB4057: The target "pipelinePreDeployCopyAllFilesToOneFolder" does not exist in the project.
这是完整的动作:
name: Build and deploy ASP app to Azure Web App
on:
push:
branches:
- develop
workflow_dispatch:
jobs:
build-and-deploy:
runs-on: 'windows-latest'
steps:
- uses: actions/checkout@master
- name: Setup MSBuild path
uses: microsoft/setup-msbuild@v1.0.2
- name: Setup NuGet
uses: NuGet/setup-nuget@v1.0.5
- name: Restore NuGet packages
run: nuget restore
- name: Publish to folder
run: msbuild /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="\published\"
- name: Deploy to Azure Web App
uses: azure/webapps-deploy@v2
with:
app-name: 'myname'
slot-name: 'production'
publish-profile: ${{ ... }}
package: \published\
具体来说,错误发生在“发布到文件夹”步骤中。
解决方案
找到了我的问题的解决方案。由于我使用的是多项目解决方案,我不得不修改 msbuild 命令并指定构建我的启动项目。现在我的发布到文件夹步骤如下所示:
- name: Publish to folder
run: msbuild src\myproj\myproj.csproj ...