如何在 BuildDrop 位置找到最新版本?
题
我在 TFS 2010 中定义了一个构建,其放置位置类似于“\server\BuildDrop\”。当我对构建进行排队时,它将构建放置在“\server\BuildDrop\MyBuild\MyBuild_20120309.1”之类的位置。
我希望能够定义一个将放置在永远不会改变的确切位置的构建。我可以更改构建定义以始终放置在这样的位置吗?
1)\服务器\BuildDrop\MyBuild\
或者
2) \server\BuildDrop\MyBuild\Latest\
解决方案
如果人们想知道在哪里找到最新的构建,我认为最好教育它们在下降位置是以及构建名称的地方,所以它们可以轻松确定哪一个是最新的自己。如果要将丢弃位置的输出复制到同一目录,则必须创建自定义模板(通过修改运行构建的默认模板)。在我的构建过程中,将文件复制到丢弃位置后,我执行一个脚本以将丢弃位置中的文件复制到常见的“最新”目录。但是,您可以轻松遇到人们在运行构建时在“最新”目录中访问文件的问题,因此您的构建失败,因为它无法覆盖这些文件。
如果要确定上次成功构建的丢弃位置,您也可以以编程方式进行。下面是我写道的自定义活动的片段:
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在主题上的教程
其他提示
当触发构建时,将在指定的放置位置创建一个文件夹,例如
- MyBuild_20120309.1
- MyBuild_20120309.2
- MyBuild_20120310.1
文件夹命名约定是 "Build Definition"_"yyyymmdd"."build number"
构建数量是一天内给出的构建数量。因此,当您触发构建时,您可以转到构建放置位置,然后转到最新的文件夹(基于命名约定)并进行设置。
不隶属于 StackOverflow