我在构建管道方面遇到问题。
代理池托管于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吗?
[更新]
但是构建任务仍然有错误。
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
答案 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
变量:
答案 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 中使用经典编辑器的示例构建任务如下所示: