Bas*_*mme 3 azure-devops asp.net-core azure-pipelines asp.net-core-2.2
我非常需要帮助来创建我的 yml 构建文件,因为我在任何地方都找不到任何好的教程、示例或其他帮助之王。我总是收到类似的错误:看到警告,我的构建工件似乎总是空的。所有步骤都成功,但我无法部署,因为找不到我的文件。愚蠢的。
##[section]Starting: PublishBuildArtifacts
==============================================================================
Task : Publish Build Artifacts
Description : Publish build artifacts to Azure Pipelines/TFS or a file share
Version : 1.142.2
Author : Microsoft Corporation
Help : [More Information](https://go.microsoft.com/fwlink/?LinkID=708390)
==============================================================================
##[warning]Directory '/home/vsts/work/1/a' is empty. Nothing will be added to build artifact 'drop'.
##[section]Finishing: PublishBuildArtifacts
Run Code Online (Sandbox Code Playgroud)
这是我的管道定义
# 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
- task: PublishBuildArtifacts@1
inputs:
ArtifactName: 'drop'
Run Code Online (Sandbox Code Playgroud)
请注意我评论的第 2 行
# - script: dotnet build --configuration $(buildConfiguration)
# displayName: 'dotnet build $(buildConfiguration)'
Run Code Online (Sandbox Code Playgroud)
实际上是默认脚本的一部分。我没有使用默认脚本。我正在关注教程https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core?view=azure-devops
还有为什么我不能使用可用于我的其他项目的模板。是因为我使用的是 DevOps 存储库还是因为我的项目有特定设置?我还有其他项目,我可以使用图形模板和任务管理构建和部署。轻松了许多。
是的,目前对 yaml 管道的帮助似乎有点分散和稀薄。
由于您的项目是AspNetCore,我认为您缺少的是dotnet publish构建之后和之前的任务PublishArtifacts:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
Run Code Online (Sandbox Code Playgroud)
但这里是我尝试解决对 netcore yaml 管道的挫败感的步骤:
您已经在构建、测试和部署 .NET Core 应用程序中查看了指南的示例任务和代码片段 ?
您是否注意到可以单击构建日志以查看管道中每个步骤的详细输出?
您是否注意到该任务DotNetCoreCLI@2相当于dotnet <command>在您自己的桌面上运行,因此您可以在某种程度上在本地运行/调试这些任务?
我发现预定义变量提供了一些有用的线索。例如,它告诉我们路径\agent\_work\1\a可能是$(Build.ArtifactStagingDirectory)变量,因此这有助于我模仿本地机器上的管道。
从逻辑上讲,您的错误消息告诉我们$(Build.ArtifactStagingDirectory)管道到达最后一步时为空。dotnetcore 示例页面向我建议这publish是为 Web 项目填充它的任务。对于其他任何事情,我认为只要完成dotnet build任务就足够了。
| 归档时间: |
|
| 查看次数: |
11030 次 |
| 最近记录: |