asp.net-core - 使用 ASP.NET Core 设置 azure-pipelines.yml “存储库中未找到 Web 项目”
问题描述
我需要帮助来设置我的 azure-pipelines.yml 构建文件,因为我在任何地方都找不到任何好的教程、示例或其他类型的帮助。
我按照 Microsoft https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core?view=azure-devops的本教程进行操作,但尽管它们提供了所有信息,但我仍然会出错。
天蓝色管道.yml
# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
trigger:
- master
pool:
vmImage: 'Ubuntu-16.04'
variables:
buildConfiguration: 'Release'
steps:
# - script: dotnet build --configuration $(buildConfiguration)
# displayName: 'dotnet build $(buildConfiguration)'
- task: DotNetCoreInstaller@0
inputs:
version: '2.2.202' # replace this value with the version that you need for your project
- script: dotnet restore
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: '**/*.csproj'
arguments: '--configuration Release' # Update this to match your need
# do this after you've built your app, near the end of your pipeline in most cases
# for example, you do this before you deploy to an Azure web app on Windows
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
- task: PublishBuildArtifacts@1
inputs:
ArtifactName: 'drop'
日志
##[section]Starting: DotNetCoreCLI
==============================================================================
Task : .NET Core
Description : Build, test, package, or publish a dotnet application, or run a custom dotnet command. For package commands, supports NuGet.org and authenticated feeds like Package Management and MyGet.
Version : 2.150.1
Author : Microsoft Corporation
Help : [More Information](https://go.microsoft.com/fwlink/?linkid=832194)
==============================================================================
##[error]No web project was found in the repository. Web projects are identified by presence of either a web.config file or wwwroot folder in the directory.
##[error]Project file(s) matching the specified pattern were not found.
##[section]Finishing: DotNetCoreCLI
为什么这些错误,我做错了什么?
附加信息 - 我可以从 Visual Studio 构建并发布到我的 Azure Web 应用程序。我的 API 正在运行。我只是不能将它作为 CI / CD 的一部分。- 我不明白这个错误,因为我不明白 DotNetCore 请求 web.config 的原因。
解决方案
只有当我给它提供了我的 Web API 的路径(将 **/*WebApi.csproj 设置为您自己的位置)时,它才对我有用。
但同样重要的是,我必须通过将 publishWebProjects 设置为 false来确保构建代理它不是 Web 项目。
- task: DotNetCoreCLI@2
displayName: ' Publish '
inputs:
command: publish
projects: '**/*WebApi.csproj'
publishWebProjects: False
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
问:发布定义中是否需要表情符号?
答:是的,表情符号是必要的。(实际上,没有。但它比必须将 publishWebProjects 设置为 false 更愚蠢。)
推荐阅读
- docker - `docker system prune -a` 实际上是做什么的?
- php - 使用逻辑运算符时检查 IF 语句的哪一部分是假/真
- xml - 使用 XmlService Google App 脚本解析 UTF-8-BOM xml 文件
- python - 在单元测试中模拟整个 python 类时无法引发异常
- java - 无法更新包(apt)(无法找到可执行文件)
- json - 遍历 JSON 格式
- java - 使用 Gson 库在 java 中解析 JSON 本地文件
- html - 调整屏幕大小时将 div 高度与 img 保持一致
- sql - 如果第一列没有我需要的值,如何在表中选择另一列
- jquery - datatables.draw() 不绘制表格