如果人们想知道在哪里可以找到最新的版本,我认为这是最好的教育他们在哪里放置位置是什么,构建名称,使他们能够很容易地确定哪一个是最新的自己。如果要将放置位置的输出复制到相同的目录中,则必须创建运行构建的自定义模板(通过修改默认模板)。在构建期间,在将文件复制到放置位置之后,我执行一个脚本将放置位置中的文件复制到常见的“最新”目录。但是,在运行构建时,您可以轻松地遇到人们在“最新”目录中访问文件的问题,因此构建失败是因为它无法覆盖这些文件。
如果您想确定上次成功构建的放置位置,也可以通过编程方式进行。下面是我写的只是做一个自定义活动的一个片段:
string tfsUri = "http://pathToTfsServer:8080/tfs";
string projectName = "MyTfsProject";
string buildDefinition = "MyTfsBuildDefinitionName";
// connect to the Project and query the builds of the BuildDefinition
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(tfsUri), new UICredentialsProvider());
tfs.EnsureAuthenticated();
var buildServer = tfs.GetService<IBuildServer>();
var buildDetails = buildServer.QueryBuilds(projectName, buildDefinition);
// sort builds based on start time
Array.Sort(buildDetails, delegate(IBuildDetail build1, IBuildDetail build2)
{
return build1.StartTime.CompareTo(build2.StartTime);
});
// return only the last successful build that currently exists
for (int i = buildDetails.Length - 1; i >= 0; i--)
{
if (buildDetails[i].Status == BuildStatus.Succeeded && buildDetails[i].IsDeleted == false)
return buildDetails[i];
}
如果您正在寻找在定制团队建设2010,那么我建议阅读Ewald Hoffman's tutorials on the subject。
有没有什么办法可以定义一个永不改变的放置位置(如上所示)? – tgriffin 2012-03-10 06:01:19
你的意思是设置必须始终在指定的文件夹中,而不是每次都是唯一的文件夹? – 2012-03-10 14:22:08