我在 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"构建数量是一天内给出的构建数量。因此,当您触发构建时,您可以转到构建放置位置,然后转到最新的文件夹(基于命名约定)并进行设置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top