如何将构建任务仅限于 VSTS 而不是 TFS

How to limit build task only to VSTS not TFS

我有一个包含两个构建任务的 VSTS 扩展,一个构建任务应该同时适用于 VSTS 和 TFS,另一个仅适用于 TFS。是否可以通过扩展清单为每个构建任务配置它?

使 extension manifest 指示扩展仅适用于 Team Services (targets = Microsoft.Visualstudio.Services.Cloud)。

无法通过扩展清单文件实现此目的。一个好的解决方法就像jessehouwing提到的那样:将两个构建任务合并为一个,在构建设置中提供一个选项让用户select或者在运行构建任务时检测构建环境。如果 select 编辑或检测到 TFS,运行 两个构建任务中的代码,否则只是 运行 第一个构建任务中的代码。

我已使用以下解决方法来显示消息并停止在 TFS 中构建。

var collectionUrl = process.env["SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"];
var regExpression = new RegExp("^((https?)\:\/\/)(([a-z0-9])+\.)*(visualstudio\.com)");
if(regExpression.test(collectionUrl))
{
    //VSTS Detected
}
else
{
   //Display message task not compatible with TFS
   //Fail the build
}