我有一个Web应用程序,它由一个解决方案下的三个项目组成。但是,我希望只允许构建定义中的两个项目通过VSTS中的参数构建。是否有可能,如果可能的话,我想如何通过Arguments中的命令跳过一个项目?
答案 0 :(得分:0)
VSTS中没有可以从解决方案中的多个项目跳过一个项目的此类设置。
如果您想跳过VSTS的项目,您应该相应地更改.sln
(如提到的raterus)。详细步骤如下:
在VS中打开解决方案 - >构建 - >配置管理器 - >选择构建配置并构建要跳过以构建项目的平台 - >取消选择要跳过构建的项目 - >关闭。
然后保存.sln文件的更改,并提交并推送(签入)对VSTS仓库的更改。
现在您可以构建VSTS,它将跳过您在VS中指定的项目。
您还可以使用文档How to: Exclude Projects from a Build。
如果您不想删除.sln
中的项目信息,则解决方法是在VS Buils任务之前更改.sln
,并在任务之后恢复.sln
例如,如果您使用git作为VCS,您可以使用以下方法跳过要构建的项目:
在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"
在VS Build任务之后,添加另一个PowerShell任务以使用脚本恢复.sln
:
git reset --hard head
然后,在VS Build任务中,您会发现项目已跳过构建。