【问题标题】:Azure Devops pipeline. Visual Studio Build or MSBuild steps: clean without a buildAzure Devops 管道。 Visual Studio Build 或 MSBuild 步骤:无需构建即可清理
【发布时间】:2021-06-19 23:27:28
【问题描述】:

我有 Azure Devops 构建管道,我想添加一个步骤来运行解决方案清理任务。我想实现与在 Visual Studio 中按 Build->Clean Solution 时相同的行为。问题是我还没有找到如何在没有 Build after 的情况下进行 Clean。我查看了预定义的构建任务(Visual Studio Build、M​​SBuild),但没有成功。

我该怎么做?我知道我可以使用命令行任务来运行 MSBuild,但我想知道我是否错过了一些简单的解决方案。

【问题讨论】:

  • 嗨@scor4er,这个问题怎么样?下面的答案是否解决了您的问题?如果没有,请告诉我有关此问题的最新信息吗?

标签: azure-devops msbuild azure-pipelines-build-task azure-devops-server-2019


【解决方案1】:

Get Source 选项卡上有一个 Clean 选项,它可以在运行构建之前对私有代理的工作目录执行不同类型的清理:

我们可以将值设置为true 以清理您的私人代理的工作目录。即使构建失败。

您可以查看文档Clean the local repo on the agent 了解更多详细信息。

如果你使用 YAML,你可以试试下面的脚本。

jobs:
- job: string  # name of the job (A-Z, a-z, 0-9, and underscore)
  ...
  workspace:
    clean: outputs | resources | all # what to clean up before the job runs

查看此文档YAML schema reference 了解一些详细信息。

更新1

默认工作文件夹是_work,打开它,我们可以看到一些文件夹1,2,3...如下:

如果你创建一个新的管道,它会在文件夹_work下创建一个新文件夹,每个管道都有自己的工作文件夹,清理按钮只是清理他们的工作文件夹,不会清理其他工作文件夹。

【讨论】:

  • 不幸的是,它在我的环境中不起作用,有多个构建目录,它们包含许多我不想接触的其他文件。这是疯狂和错误的,但它就是这样。
  • 嗨@scor4er,我已经更新了答案,你可以检查更新1,然后在这里分享结果。此外,您还可以查看ticket 以获取工作文件夹信息
  • 抱歉,我可能不够清楚。我无法在构建之间完全清除输出目录。在我的情况下这是不可能的。我构建到静态路径,并且输出文件夹保留在构建之间的构建代理上,它包含来自许多构建步骤的许多奇怪的垃圾,而不仅仅是来自单个 Visual Studio 解决方案。我只想知道为单个解决方案运行 Clean 命令的方式。可能,我会直接通过 cmd 调用 MSBuild。无论如何,感谢您的宝贵时间!
猜你喜欢
  • 2020-08-28
  • 2022-11-03
  • 2017-02-01
  • 2019-09-19
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
相关资源
最近更新 更多