如何在vsts构建定义VSTS中的一个解决方案中跳过多个项目中的一个项目

时间:2018-01-04 13:28:51

标签: msbuild azure-devops

我有一个Web应用程序,它由一个解决方案下的三个项目组成。但是,我希望只允许构建定义中的两个项目通过VSTS中的参数构建。是否有可能,如果可能的话,我想如何通过Arguments中的命令跳过一个项目?

1 个答案:

答案 0 :(得分:0)

VSTS中没有可以从解决方案中的多个项目跳过一个项目的此类设置。

如果您想跳过VSTS的项目,您应该相应地更改.sln(如提到的raterus)。详细步骤如下:

在VS中打开解决方案 - >构建 - >配置管理器 - >选择构建配置并构建要跳过以构建项目的平台 - >取消选择要跳过构建的项目 - >关闭。

enter image description here

然后保存.sln文件的更改,并提交并推送(签入)对VSTS仓库的更改。

现在您可以构建VSTS,它将跳过您在VS中指定的项目。

您还可以使用文档How to: Exclude Projects from a Build

如果您不想删除.sln中的项目信息,则解决方法是在VS Buils任务之前更改.sln,并在任务之后恢复.sln

例如,如果您使用git作为VCS,您可以使用以下方法跳过要构建的项目:

  1. 在VS构建任务之前,使用以下脚本添加PowerShell任务:

    git checkout $(BUILD.SOURCEBRANCHNAME)
    (get-content "$(Build.SourcesDirectory)\relative\path\to\solution") -notmatch "{project_ID}.$(BuildConfiguration)" | out-file "$(Build.SourcesDirectory)\relative\path\to\solution"
    

    如:

    git checkout $(BUILD.SOURCEBRANCHNAME)
    (get-content "$(Build.SourcesDirectory)\ConsoleAppCore\ConsoleAppCore.sln") -notmatch "{ECF93D95-5096-497E-B4B8-83416DABB516}.$(BuildConfiguration)" | out-file "$(Build.SourcesDirectory)\ConsoleAppCore\ConsoleAppCore.sln"
    
  2. 在VS Build任务之后,添加另一个PowerShell任务以使用脚本恢复.sln

    git reset --hard head
    
  3. 然后,在VS Build任务中,您会发现项目已跳过构建。

相关问题