## [错误]找不到与指定模式匹配的项目文件

时间:2018-10-29 18:56:30

标签: azure-devops

我在构建管道方面遇到问题。

Pipeline

Get Sources

代理池托管于VS2017

YAML是

pool:
  vmImage: 'VS2017-Win2016'

variables:
  buildConfiguration: 'Debug'

steps:
- task: DotNetCoreInstaller@0
  displayName: 'Use .NET Core sdk 2.1.5'
  inputs:
    version: 2.1.403


- task: DotNetCoreCLI@2
  displayName: Restore
  inputs:
    command: restore

    projects: '**/Api*.csproj'


#Your build pipeline references an undefined variable named ‘Parameters.projects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972
#Your build pipeline references the ‘BuildConfiguration’ variable, which you’ve selected to be settable at queue time. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab, and then select the option to make it settable at queue time. See https://go.microsoft.com/fwlink/?linkid=865971
- task: DotNetCoreCLI@2
  displayName: Build
  inputs:
    projects: '$(Parameters.projects)'

    arguments: '--configuration $(BuildConfiguration)'


#Your build pipeline references an undefined variable named ‘Parameters.projects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972
#Your build pipeline references the ‘BuildConfiguration’ variable, which you’ve selected to be settable at queue time. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab, and then select the option to make it settable at queue time. See https://go.microsoft.com/fwlink/?linkid=865971

- task: DotNetCoreCLI@2
  displayName: Publish
  inputs:
    command: publish

    publishWebProjects: false

    projects: '$(Parameters.projects)'

    arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)'

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact'
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'

运行时,构建任务具有以下日志

2018-10-29T18:28:43.7087338Z ##[section]Starting: Build
2018-10-29T18:28:43.7093502Z ==============================================================================
2018-10-29T18:28:43.7093580Z Task         : .NET Core
2018-10-29T18:28:43.7093785Z 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.
2018-10-29T18:28:43.7093818Z Version      : 2.141.0
2018-10-29T18:28:43.7093864Z Author       : Microsoft Corporation
2018-10-29T18:28:43.7093895Z Help         : [More Information](https://go.microsoft.com/fwlink/?linkid=832194)
2018-10-29T18:28:43.7093925Z ==============================================================================
2018-10-29T18:28:44.4833128Z [command]C:\Windows\system32\chcp.com 65001
2018-10-29T18:28:44.4926077Z Active code page: 65001
2018-10-29T18:28:45.1965225Z ##[error]Project file(s) matching the specified pattern were not found.
2018-10-29T18:28:45.2037015Z ##[section]Finishing: Build

我注意到该日志引用的是2.141.0,在恢复最新的SDK 2.1.403时,为什么会这样?托管的VS2017代理可能不支持最新版本的.netcore吗?

[更新]

我为Parameters.projects添加了一个变量 parameters projects

但是构建任务仍然有错误。

2018-10-29T21:07:38.6774331Z ##[section]Starting: Build
2018-10-29T21:07:38.6781540Z ==============================================================================
2018-10-29T21:07:38.6781632Z Task         : .NET Core
2018-10-29T21:07:38.6781676Z 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.
2018-10-29T21:07:38.6781762Z Version      : 2.141.0
2018-10-29T21:07:38.6781807Z Author       : Microsoft Corporation
2018-10-29T21:07:38.6781853Z Help         : [More Information](https://go.microsoft.com/fwlink/?linkid=832194)
2018-10-29T21:07:38.6781915Z ==============================================================================
2018-10-29T21:07:39.5030735Z [command]C:\Windows\system32\chcp.com 65001
2018-10-29T21:07:39.5157531Z Active code page: 65001
2018-10-29T21:07:39.5840366Z ##[error]Project file(s) matching the specified pattern were not found.
2018-10-29T21:07:39.5916864Z ##[section]Finishing: Build

3 个答案:

答案 0 :(得分:5)

发布以防万一,将来对任何人都有帮助

我将vmImage设置为ubuntu,并设置了以下内容:

projects: '**\*.csproj'

反斜杠使事情无法解决,我不得不切换到以下位置:

projects: '**/*.csproj'

我从假设Windows的指南中复制而来。足够微妙,我花了一段时间才注意到?

答案 1 :(得分:2)

您需要在构建任务中定义要构建的.csproj个文件。

对于您而言,定义位于变量$(Parameters.projects)中。

- task: DotNetCoreCLI@2
  displayName: Build
  inputs:
    projects: '$(Parameters.projects)'

    arguments: '--configuration $(BuildConfiguration)'

您可以在.csproj中替换此变量(例如,所有子文件夹中所有.csproj文件的** / *。csproj):

- task: DotNetCoreCLI@2
  displayName: Build
  inputs:
    projects: '**/*.csproj'

    arguments: '--configuration $(BuildConfiguration)'

或转到变量标签并添加Parameters.projects变量:

enter image description here

答案 2 :(得分:0)

我正在尝试在 dotnet 核心中构建和发布多项目解决方案。 解决方案结构为:

sampleTest.API
      sampleTest.API.csproj
sampleTest.Data
      sampleTest.Data.csproj
sampleTest.Identity
      sampleTest.Identity.csproj
sampleTest.Web
      sampleTest.Web.csproj
sampleTest.sln

现在,我只想构建 sampleTest.API dotnet 核心项目。我只需要在构建任务中定义项目的路径如下图。

Azure Devops 中管道构建任务的 yaml 文件如下所示:

steps:
- task: DotNetCoreCLI@2
  displayName: Build
  inputs:
    projects: 'sampleTest.API/*.csproj'
    arguments: '--configuration $(BuildConfiguration)'

如果我们需要基于搜索所有“cs.proj”文件来构建 - 我们这样做

projects: '**/*.csproj'

在 Azure Devops 中使用经典编辑器的示例构建任务如下所示:

enter image description here

enter image description here