Настройка azure-pipelines.yml "Веб-проект не найден в хранилище" с ASP.NET Core - PullRequest
2 голосов
/ 23 апреля 2019

Мне нужна помощь для настройки моего файла сборки 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'

Log

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.Мой API работает.Я просто не могу сделать это как часть CI / CD.- Я не понимаю эту ошибку, потому что не понимаю, почему DotNetCore запрашивает web.config.

1 Ответ

0 голосов
/ 25 июня 2019

Это сработало только для меня, когда я указал путь к своему веб-API (установите ** / * WebApi.csproj в свое собственное местоположение).

Но что не менее важно, я должен был заверить агента по сборке, что это НЕ веб-проект, установив в значение publishWebProjects, равное false .

- task: DotNetCoreCLI@2
  displayName: '??? Publish ???'
  inputs:
    command: publish
    projects: '**/*WebApi.csproj'
    publishWebProjects: False
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True

Q : нужны ли эмоджи в определении публикации?
A : Да, смайлики необходимы. (На самом деле нет. Но это было бы менее глупо, чем установка false для publishWebProjects.)

...