首页 > 解决方案 > 如何从 Azure 构建管道(经典版)中的 dotnet 核心发布任务中排除文件夹/项目?

问题描述

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

存储库结构

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

管道

管道设置指向仅考虑 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 'Publish' 任务似乎没有考虑到这一点。
  2. 尝试指定发布任务的参数以仅考虑 NetCoreProject .sln 文件和 .csproj 文件,但问题仍然出现并显示相同的错误消息。
  3. 使用命令行任务再次确认文件存在于 Build.SourceDirectory 中。

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

标签: .net-coreazure-devopsazure-pipelinesazure-pipelines-build-taskazure-devops-pipelines

解决方案


如何使.Net Core“发布”任务排除NetCPPProject并只考虑NetCoreProject?

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

第 1 步:禁用Publish web projectsDotnet 发布任务中的选项。

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

在此处输入图像描述

例如:

回购:

在此处输入图像描述

结果:

在此处输入图像描述


推荐阅读