当前位置: 首页 > 知识库问答 >
问题:

VSTS发布管道找不到已发布的神器

柯升
2023-03-14

我正在尝试设置CI / CD,但没有太多的运气。我的目标是通过 VSTS 构建一个 .net 网络项目,并将其部署到 AWS 豆茎应用程序。

我现在在哪里?

创建了< code>vsts-ci.yml文件,如下所示:

# ASP.NET
# Build and test ASP.NET web applications.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://docs.microsoft.com/vsts/pipelines/apps/aspnet/build-aspnet-4

pool:
  vmImage: 'VS2017-Win2016'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@0

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(Build.artifactStagingDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

我有一个构建定义,如下所示:

有了这个,我的第一步build运行正确。顺便说一下代理池是托管VS2017

然后,我创建了一个如下发布管道:

作为第1阶段的任务(在工件步骤之后运行的部分),我有以下内容:

我已经将构建与主分支提交挂钩,并将发布与成功的构建挂钩,这些触发工作正常。虽然失败了。该问题是由找不到工件文件引起的,可能是因为错误的路径输入。但是我不知道正确的版本。

构建完成后,它声称创建了一个< code >。包含发布版本的zip文件:

但在此之后,发布失败,只是说没有这样的文件。我在Web Deploy Archive字段尝试了许多路径,但都找不到zip文件。

你看到的powershell任务,我创建它来检查路径,以及它们中的内容,它们大多是空的。

我发现的一件有趣的事情是,当我用< code > $(system . defaultworkingdirectory)和< code > $(build . artifactstagingdirectory)作为< code>Web Deploy Archive字段的后缀时,build会将文件放在< code>D:\a\1\a中,但是发布任务会尝试查看< code>D:\a\r1\a。

另一件奇怪的事情是,在发布< code >下载工件阶段,它说< code >链接工件计数:0。我希望是别的什么东西。

我在这里做错了什么?如果有人能帮我度过难关,我将不胜感激。

更新:我增加了“发布工件:丢弃”

当< code >要发布的路径为" $(System。DefaultWorkingDirectory)/project-2-codes . zip

发布构建项目失败,出现错误:未找到路径发布:D:\a\r1\a\project-2-codes.zip

当< code >要发布的路径为" $(System。DefaultWorkingDirectory)"

发布生成项目失败,出现错误:未找到路径发布:D:\a\r1\a\$(生成。人工分级目录)

共有2个答案

郜琦
2023-03-14

需要将生成输出发布为项目。使用“发布项目”任务。

丁豪
2023-03-14

头撞了很多墙后,我发现了问题。

我创建的构建定义完全错误。我使用了默认向导,没有注意到自定义设计器(我认为链接旁边的文本和链接名称没有任何意义)。

它创建了一个几乎为空的构建定义。我甚至不知道它在做什么。现在,使用可视化设计器,我实际上可以选择一个包含所有必需构建任务的构建定义模板。正确创建构建后,一切都运行得很好。

以下是我提出的构建定义:

下面是豆茎部署任务:

 类似资料:
  • 但是当我对新版本进行排队时,发布任务抱怨“错误:找不到具有指定模式的包:D:\a\r1\a***.zip”。我认为这是因为发布定义中的zip文件路径是错误的。如何使构建任务和发布任务一起玩?

  • 看起来,PublishBuildArtifacts任务在发布环境中不可用。 https://docs.microsoft.com/de-de/azure/devops/pipelines/tasks/utility/publish-pipeline-artifact?view=azure-德沃斯 但是,当我们的客户从Azure存储库(通用软件包)中获取新的工件版本时,有机会通过发布管道发布这些工件

  • 我正在尝试添加预定义变量“Release”。释放(https://docs.microsoft.com/en-us/azure/devops/pipelines/release/variables?view=azure-devops)到网站。在IIS管道发布期间进行配置。在stage上启用了XML变量替换,但它不会替换版本。对任何事情都放松。

  • 首先-我知道,根据官方MS文档,通过部署控制更新具有发布状态的工作项的内置功能仅在发布管道中受支持,而在多阶段YAML管道中不受支持(请参阅此处记录的第一个注释:https://docs.microsoft.com/en-us/azure/devops/boards/work-items/work-item-deployments-control?view=azure-德沃斯) 是否有人使用pow

  • 我有一个azure构建管道和发布管道。我在发布构建工件中面临问题。在构建管道中,发布构建工件被正确地创建在默认的“drop”目录中。 当我在发布管道中下载该工件时,发布文件正在服务抛出错误的中下载 您没有查看此目录或页面的权限。 这意味着我的发布工件没有在“home/wwwroot”目录中下载。 构建管道 释放管道 我错过了什么?

  • 我正在测试Visual Studio Team Services新发布管理系统的预览版。我的场景是一个在VSTS托管Git回购的经典网站(ASP.NET 4.5)。如下所示,构建定义是成功的: 它被设置为发布为可以由Release Manager获取的工件,如下所示: 在发布管理器端,我将工件正确链接,如下所示: 在这里,您可以看到我的环境以及相关的任务(三个都是克隆) 当我运行构建发布的版本时,