我如何引用“a”;以拉链的形式放下;或者在TFS中构建时,是放置文件夹而不是源?

我如何引用“a”;以拉链的形式放下;或者在TFS中构建时,是放置文件夹而不是源?,tfs,Tfs,我已经习惯了与TeamCity合作,所以我可能应该完全改变我的工作流程,在这种情况下,我应该用一个新工作流程的建议来回答 在TeamCity中,我通常将构建和运行单元测试作为一个构建任务(在每次提交时)。长时间运行的测试安排在夜间,并以相同的方式运行。到目前为止,我已经设法在TFS中复制了这个过程。但除此之外,我还有一个构建任务来部署/发布包。这是我在准备好之后手动启动的。此脚本引用了以前构建的工件(即TFS中的drop文件夹或drop zip) 我读过关于部署脚本的文章,但找不到关于如何在T

我已经习惯了与TeamCity合作,所以我可能应该完全改变我的工作流程,在这种情况下,我应该用一个新工作流程的建议来回答

在TeamCity中,我通常将构建和运行单元测试作为一个构建任务(在每次提交时)。长时间运行的测试安排在夜间,并以相同的方式运行。到目前为止,我已经设法在TFS中复制了这个过程。但除此之外,我还有一个构建任务来部署/发布包。这是我在准备好之后手动启动的。此脚本引用了以前构建的工件(即TFS中的drop文件夹或drop zip)

我读过关于部署脚本的文章,但找不到关于如何在TFS中触发它们的任何信息

简而言之,问题是:在TFS中构建时,如何引用“drop as zip”或drop文件夹而不是源?

您可以在特定构建上“获取特定构建”或“最新成功构建”,然后您可以引用该构建的放置位置。
使用TFS API,获取最新版本应该如下所示:

using (TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfsserver:8080/tfs/DefaultCollection")))
{
    var buildServer= tpc.GetService<IBuildServer>();
    var buildSpec = buildServer.CreateBuildDetailSpec(teamProjectName, buildDefinition); 
    buildSpec.InformationTypes = null; 
    buildSpec.MinFinishTime = DateTime.Now.AddHours(-lastXHours); 
    buildSpec.MaxBuildsPerDefinition = 1;
    buildSpec.QueryOrder = Microsoft.TeamFoundation.Build.Client.BuildQueryOrder.FinishTimeDescending;
    buildSpec.Status=Microsoft.TeamFoundation.Build.Client.BuildStatus.Succeeded;
    var buildDetails = buildServer.QueryBuilds(buildSpec).Builds; 
    if (buildDetails.Length ==1){var dropLocation= buildDetails[0].DropLocation; }    
    else { Console.WriteLine("No builds found." );}

}
使用(tfstreamprojectcollection)tpc=tfstreamprojectcollectionfactory.GetTeamProjectCollection(新Uri(“http://tfsserver:8080/tfs/DefaultCollection")))
{
var buildServer=tpc.GetService();
var buildSpec=buildServer.CreateBuildDetailSpec(teamProjectName,buildDefinition);
buildSpec.InformationTypes=null;
buildSpec.MinFinishTime=DateTime.Now.AddHours(-lastXHours);
buildSpec.MaxBuildsPerDefinition=1;
buildSpec.QueryOrder=Microsoft.TeamFoundation.Build.Client.BuildQueryOrder.FinishTimeDescending;
buildSpec.Status=Microsoft.TeamFoundation.Build.Client.BuildStatus.successed;
var buildDetails=buildServer.QueryBuilds(buildSpec.Builds);
如果(buildDetails.Length==1){var-dropLocation=buildDetails[0].dropLocation;}
else{Console.WriteLine(“未找到任何生成”);}
}