【问题标题】:How to exclude folders/projects from dotnet core publish task in Azure Build Pipeline (Classic version)?如何从 Azure 构建管道(经典版)中的 dotnet 核心发布任务中排除文件夹/项目?
【发布时间】:2021-05-29 16:58:58
【问题描述】:

我有一个 Azure DevOps GIT 存储库,其中包含三种不同类型的项目。结构如下;

Repository Structure

我有一个构建管道(经典,而不是 YAML)来仅构建 .Net Core 项目,如下所示。

Pipeline

管道设置指向仅考虑 NetCoreProject。恢复、构建和测试任务成功执行。但是,当涉及到“发布”任务时,管道会失败,因为它会考虑整个存储库(所有项目)而不仅仅是 NetCoreProject。

失败的实际原因是在 NetCPPProject 文件夹中有一些没有任何扩展名的文件(makefile、快捷方式文件等),发布任务无法识别这些文件并且失败并出现以下错误。

##[error]Error: Failed find: ENOENT: no such file or directory, stat 'D:\a\1\s\NetCPPProject\inc'

注意:inc 是一个快捷方式文件(没有任何扩展名),它必须存在于文件夹中。

我尝试了以下方法,但没有成功;

  1. 添加了 .artifactignore 以忽略其他文件夹,但 .Net Core 的“发布”任务似乎没有考虑这一点。
  2. 尝试指定发布任务的参数以仅考虑 NetCoreProject .sln 文件和 .csproj 文件,但问题仍然出现并显示相同的错误消息。
  3. 通过命令行任务再次确认文件存在于 Build.SourceDirectory 中。

问题是,如何使 .Net Core 'Publish' 任务排除 NetCPPProject 而只考虑 NetCoreProject?

【问题讨论】:

标签: .net-core azure-devops azure-pipelines azure-pipelines-build-task azure-devops-pipelines


【解决方案1】:

如何使 .Net Core 'Publish' 任务排除 NetCPPProject 并只考虑 NetCoreProject?

要实现这个目标,您可以尝试以下步骤:

Step1:在 Dotnet Publish 任务中禁用 Publish web projects 选项。

Step2:在Path to project字段中设置目标csproj文件

例如:

回购:

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 2021-06-16
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    相关资源
    最近更新 更多