在 Azure DevOps Repos 中编译目录并将结果保存在某处

Compile directory in Azure DevOps Repos and save the results somewhere

假设我在 Azure DevOps 存储库中有这样的目录结构:

Main/
  - A/  
    - *.csproj
  - B/
    - *.csproj   
  - C/
    - *.csproj  

每个子文件夹都有一个 .csproj 文件。我想编译 Main/A/ 文件夹并将构建结果(工件?)保存在某处,无论是文件夹还是其他地方。我如何告诉 Azure 构建那个精确的 Main/A/*.csproj 文件,我是否需要在 VSBuild@1 任务中使用 /p:OutputPath,或者我是否需要使用其他一些 Azure 任务?

How do I tell Azure to build that precise Main/A/*.csproj file and do I need to use /p:OutputPath inside the VSBuild@1 task

如果您使用的是经典 UI,则需要取消链接默认解决方案:

然后通过浏览选项选择A项目:

如果您使用 Yaml 格式,您应该使用类似 solution: A/A.csproj 的内容来指定要构建的项目。

注:

既然我们正在构建单个项目而不是整个解决方案,我们应该使用 Project Configuration 而不是 Solution Configurationany cpu 是解决方案平台而不是项目平台 (AnyCPU)。因此,如果我们想使用此设置构建一个项目,我们应该确保使用 AnyCPU 构建单个项目。

如果出现错误 The OutputPath property is not set for project 'A.csproj',则表示您应该使用有效的项目配置。在您的情况下,如果您使用的是 any cpu,请将其更改为 AnyCPU

另外:

1.To 将构建结果发布为构建工件以供进一步使用。您可以像这样使用 Copy Files 任务和 Publish Build Artifacts 任务:

Copy Files Task.

Publish Build Artifacts

然后您可以在构建日志页面的摘要选项卡中下载 Test.zip。此外,您可以使用下载工件任务在发布管道中使用此工件。

  1. 如果您正在尝试构建代码项目而不是整个解决方案,请选中 this。可以考虑 MSBuild 任务。他们(Msbuild 任务,VS 构建任务)都调用 msbuild.exe 来完成构建工作。

希望以上对您有所帮助:)