如何从 Azure Build Pipeline(经典版)中的 dotnet 核心发布任务中排除 folders/projects?
How to exclude folders/projects from dotnet core publish task in Azure Build Pipeline (Classic version)?
我有一个 Azure DevOps GIT 存储库,其中包含三种不同类型的项目。结构如下所示;
Repository Structure
我有一个构建管道(经典的,不是 YAML)来构建 .Net Core 项目,如下所示。
Pipeline
流水线设置只考虑NetCoreProject。恢复、构建和测试任务成功执行。但是,当涉及到 'Publish' 任务时,管道会失败,因为它考虑了整个存储库(所有项目)而不仅仅是 NetCoreProject。
失败的实际原因是在 NetCPPProject 文件夹中有一些没有任何扩展名的文件(makefile、快捷方式文件等),发布任务无法识别这些文件并因以下错误而失败。
##[错误]错误:查找失败:ENOENT:没有这样的文件或目录,stat 'D:\a\s\NetCPPProject\inc'
注意:inc 是一个快捷方式文件(没有任何扩展名),并且需要存在于文件夹中。
我尝试了以下,但没有用;
- 添加了 .artifactignore 以忽略其他文件夹,但 .Net Core 'Publish' 任务似乎没有考虑到这一点。
- 尝试指定发布任务的参数以仅考虑 NetCoreProject .sln 文件和 .csproj 文件,但问题仍然出现并出现相同的错误消息。
- 使用命令行任务重新确认文件存在于 Build.SourceDirectory 中。
问题是,如何让.Net Core 'Publish'任务排除NetCPPProject,只考虑NetCoreProject?
how to make .Net Core 'Publish' task to exclude NetCPPProject and only consider NetCoreProject?
要实现这个目标,您可以尝试以下步骤:
第 1 步:禁用 Dotnet 发布任务中的 Publish web projects
选项。
第二步:在Path to project
字段中设置目标csproj文件
例如:
回购:
结果:
我有一个 Azure DevOps GIT 存储库,其中包含三种不同类型的项目。结构如下所示;
Repository Structure
我有一个构建管道(经典的,不是 YAML)来构建 .Net Core 项目,如下所示。
Pipeline
流水线设置只考虑NetCoreProject。恢复、构建和测试任务成功执行。但是,当涉及到 'Publish' 任务时,管道会失败,因为它考虑了整个存储库(所有项目)而不仅仅是 NetCoreProject。
失败的实际原因是在 NetCPPProject 文件夹中有一些没有任何扩展名的文件(makefile、快捷方式文件等),发布任务无法识别这些文件并因以下错误而失败。
##[错误]错误:查找失败:ENOENT:没有这样的文件或目录,stat 'D:\a\s\NetCPPProject\inc'
注意:inc 是一个快捷方式文件(没有任何扩展名),并且需要存在于文件夹中。
我尝试了以下,但没有用;
- 添加了 .artifactignore 以忽略其他文件夹,但 .Net Core 'Publish' 任务似乎没有考虑到这一点。
- 尝试指定发布任务的参数以仅考虑 NetCoreProject .sln 文件和 .csproj 文件,但问题仍然出现并出现相同的错误消息。
- 使用命令行任务重新确认文件存在于 Build.SourceDirectory 中。
问题是,如何让.Net Core 'Publish'任务排除NetCPPProject,只考虑NetCoreProject?
how to make .Net Core 'Publish' task to exclude NetCPPProject and only consider NetCoreProject?
要实现这个目标,您可以尝试以下步骤:
第 1 步:禁用 Dotnet 发布任务中的 Publish web projects
选项。
第二步:在Path to project
字段中设置目标csproj文件
例如:
回购:
结果: