使用ASP.NET Core设置azure-pipelines.yml“在存储库中找不到Web项目”

时间:2019-04-23 08:38:15

标签: asp.net-core azure-devops azure-pipelines

我需要帮助来设置azure-pipelines.yml构建文件,因为在任何地方都找不到任何好的教程,示例或其他类型的帮助。

我遵循Microsoft https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core?view=azure-devops的本教程,但是尽管它们提供了所有信息,但仍然会出现错误。

azure-pipelines.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'

登录

enter image description here

##[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。

1 个答案:

答案 0 :(得分:0)

仅当我给它提供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

:发布定义中是否需要表情符号?
A :是的,表情符号是必需的。 (实际上,不。但是,与必须将publishWebProjects设置为false相比,这要愚蠢得多。)