【发布时间】:2026-01-30 18:00:02
【问题描述】:
我正在为 CI 构建演示运行以下脚本 https://github.com/RicoSuter/Namotion.Reflection/blob/master/azure-pipelines.yml:
trigger:
branches:
include:
- master
- release
- refs/tags/*
pr:
- master
pool:
vmImage: 'ubuntu-latest'
variables:
BuildConfiguration: Release
Projects: '**/*.csproj'
steps:
# Install required SDKs and tools
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
packageType: 'sdk'
version: '2.2.203'
# Patch preview project versions (only when on master branch)
- task: CmdLine@2
displayName: 'Install DNT'
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
inputs:
script: 'npm i -g dotnettools'
- task: CmdLine@2
displayName: 'Update project version patch'
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
inputs:
script: 'dnt bump-versions patch'
failOnStderr: true
- task: CmdLine@2
displayName: 'Patch project version preview'
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
inputs:
script: 'dnt bump-versions preview "$(Build.BuildNumber)"'
failOnStderr: true
# Build and test
- task: DotNetCoreCLI@2
displayName: 'Build solution'
inputs:
command: 'build'
projects: '$(Projects)'
arguments: '--configuration $(BuildConfiguration)'
feedsToUse: 'select'
versioningScheme: 'off'
- task: DotNetCoreCLI@2
displayName: 'Run tests'
inputs:
command: 'test'
projects: '$(Projects)'
arguments: '--configuration $(BuildConfiguration) --collect "Code Coverage"'
publishTestResults: true
feedsToUse: 'select'
versioningScheme: 'off'
# Publish artifacts
- task: CopyFiles@2
displayName: 'Copy packages'
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
Contents: '**/*.nupkg'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
flattenFolders: true
- task: PublishBuildArtifacts@1
displayName: 'Publish artifacts'
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
我尝试调整 vmImage 以使用 ubuntu-latest 并调整 npm 命令,使其以“sudo”为前缀,但是在命令 dnt bump-versions patch 我得到以下错误:
##[section]Starting: Update project version patch
==============================================================================
Task : Command line
Description : Run a command line script using Bash on Linux and macOS and cmd.exe on Windows
Version : 2.151.2
Author : Microsoft Corporation
Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/command-line
==============================================================================
Generating script.
Script contents:
dnt bump-versions patch
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/29d33702-3084-4704-851f-a6f76f18f813.sh
DNT (DotNetTools) NPM CLI
Error:
An assembly specified in the application dependencies manifest (dnt.deps.json) was not found:
package: 'Microsoft.Build.Locator', version: '1.2.6'
path: 'lib/netcoreapp2.0/Microsoft.Build.Locator.dll'
child_process.js:660
throw err;
^
Error: Command failed: dotnet "/usr/local/lib/node_modules/dotnettools/bin/binaries/NetCore22/dnt.dll" bump-versions patch
at checkExecSyncError (child_process.js:621:11)
at Object.execSync (child_process.js:657:15)
at /usr/local/lib/node_modules/dotnettools/bin/dnt.js:52:11
at ChildProcess.exithandler (child_process.js:286:7)
at ChildProcess.emit (events.js:210:5)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5) {
status: 140,
signal: null,
output: [ null, null, null ],
pid: 3784,
stdout: null,
stderr: null
}
##[error]Bash exited with code '1'.
##[error]Bash wrote one or more lines to the standard error stream.
##[section]Finishing: Update project version patch
有什么想法吗?我正在关注教程中的这段代码,我对其他 yaml 脚本持开放态度。
【问题讨论】:
标签: .net azure-devops azure-pipelines