从生成触发发布

使用 Team Foundation Build 生成应用程序时自动启动发布。 你可以选择从发布过程的哪个阶段开始。 要从生成触发发布,你必须配置生成过程和发布路径。

如果尚未创建发布路径,请转到此处执行此操作。

此外,如果尚未设置生成系统,请立即执行此操作

配置生成过程

  1. 如果你无权编辑生成定义,请立即获取

  2. 从 Visual Studio 团队资源管理器连接到团队项目(你想要参与的项目)(键盘:Ctrl + 0、C)。

  3. “生成”图标**“生成”**页面(键盘:Ctrl + 0、B)上,创建或编辑生成定义。

  4. 在生成定义的“过程”选项卡上,选择要用于该发布的配置(例如:调试或发布)。 将“发布版本”设置为 True。 选择你想要针对发布触发的特定阶段,或如果你想从第一阶段开始,就将这个字段置空。

    发布生成参数

    如果**“发布”**部分未显示:

    • 问:我使用默认模板。 我应将哪个生成过程模板用于 Release Management,又如何将其添加到 TFS 中?

    • 问:我使用升级模板。 我应将哪个生成过程模板用于 Release Management?

    • 问:我使用自定义生成过程模板。 我如何添加工作流逻辑以触发发布?

    如果组件的配置文件需要基于目标环境的不同值,则可以标记配置文件。

  5. 指定你的生成过程需要的任何其他设置,然后保存生成定义。

配置发布模板

  1. 如果你尚未在生成服务器上安装 Visual Studio 2013 Release Management 客户端,请立即安装。 配置 Release Management 客户端,以连接到 Release Management 服务器。

    在生成服务器上安装客户端后,重新启动生成服务。 你可以从 Team Foundation Server 管理控制台执行此操作。

  2. 从你的发布模板中,选择已设置为触发生成的生成定义并选中该复选框,以便该生成过程触发发布。

    发布模板的“属性”页

    如果未显示选择的生成定义,则需要将你的 TFS 连接添加到 Release Management 客户端。 (从**“管理”部分的“管理 TFS”**选项卡添加连接)。

    发布触发后,将经历所选阶段中的步骤。 如果对此阶段不将**“验收步骤”“部署步骤”设置为“自动”**,将不会启动发布。 你必须在发布路径中将这些步骤标记为自动。

问题解答

ms181355.collapse_all(zh-cn,VS.120).gif问:我使用默认模板。我应将哪个生成过程模板用于 Release Management,又如何将其添加到 TFS 中?

**答:**如果你使用默认模板,只需要将其替换为相应的发布管理过程模板。

  1. 如果你无权提供文件或编辑生成定义,请立即获取

  2. 从 Visual Studio 团队资源管理器连接到团队项目(你想要参与的项目)(键盘:Ctrl + 0、C)。

  3. 驱动器:\Program Files (x86)\ Microsoft Visual Studio 12.0\ReleaseManagement\bin 文件夹中,找到你需要的模板。 或者从此博客文章附加的压缩文件中将模板下载至此目录。

    • TFS 2013

      • “TFVC”图标 TFVC:ReleaseTfvcTemplate.12.xaml。

      • “Git”图标 Git:ReleaseGitTemplate.12.xaml

    • TFS 2012:ReleaseDefaultTemplate.11.1.xaml

    • TFS 2010:ReleaseDefaultTemplate.xaml

  4. 将模板添加到版本控制。 最好将模板放到团队项目的 BuildProcessTemplates 文件夹中。

  5. “生成”图标**“生成”**页面(键盘:Ctrl + 0、B)上,创建或编辑生成定义。

  6. 从**“过程”选项卡中,选择“新建”,以选择用于“生成过程文件”**的模板。 (你应能够浏览选择刚添加的模板)。

ms181355.collapse_all(zh-cn,VS.120).gif问:我使用自定义生成过程模板。我如何添加工作流逻辑以触发发布?

**答:**向自定义生成过程模板中添加提供工作流逻辑的部分。 从此处下载包含这些部分的代码段文件。 使用这些代码段将如下参数添加到生成过程模板中:ConfigurationsToRelease、ReleaseBuild、ReleaseTargetStage、DropBuild。

保存生成过程模板。 如果你使用 Team Foundation 版本控制,请将其签入。 如果你使用 Git,请提交并推送生成过程模板。

ms181355.collapse_all(zh-cn,VS.120).gif问:我使用升级模板。我应将哪个生成过程模板用于 Release Management?

**答:**请从此处了解你需要执行的操作。

ms181355.collapse_all(zh-cn,VS.120).gif问:我可以将我的应用程序组件部署到不同的计算机上吗?

**答:**可以,通过 Release Management 客户端创建组件并将其添加到发布模板中。

然后可将这些组件添加到生成中。

将组件添加到发布模板

显示“组件”窗口时,双击要添加的组件。

你添加的每个组件必须配置为**“与应用程序一起生成”“在外部生成”**。

“组件”页,“源”选项卡

**“生成放置位置”中的“\”**指示生成位于放置文件夹的根目录。

ms181355.collapse_all(zh-cn,VS.120).gif问:我可以使用哪些工具部署组件?

**答:**对于你定义的每个组件,可从“部署”选项卡中选择要使用的工具。 有关每个工具的详细信息,请转到此处

“组件”页,“部署”选项卡

使用部署此组件的特定信息替换**“参数”**。

要使用自定义工具,请首先通过“库存”页面添加工具,然后从“部署”选项卡中选择它。

请确保你的命令所引用的任何文件在部署时都存在于你的包位置中。

ms181355.collapse_all(zh-cn,VS.120).gif问:为什么我的发布没有启动?

可能存在的问题如下:

  • 你将生成配置为触发发布(**“版本生成”为“True”),但你没有为发布模板选中“是否可从生成触发发布?”**复选框。 这实际上会导致生成失败,从而致使发布不启动。

  • 你将发布模板配置为使用不触发发布(“版本生成”=“False”)或不包含正确发布逻辑的生成定义。

  • 发布模板包含配置为独立生成的任何组件。

  • 对于你选择的触发发布的阶段,没有将**“验收步骤”“部署步骤”设置为“自动”**,因此发布不会启动。 你必须将此发布路径的这些步骤设置为自动。

  • 尚未在运行 Team Foundation Build 服务器的计算机上安装 Release Management 客户端。

  • 部署完成的时间超过 10 分钟。 你可以从“设置”页面的“管理”选项卡中更改分配给**“TFS 触发的部署超时”**的值。

ms181355.collapse_all(zh-cn,VS.120).gif问:我如何处理需要基于目标环境的不同值的配置文件?

**答:**使用标记的配置文件。

对于你的解决方案中在不同环境下需要不同值的每个配置文件,请为其创建标记版本。

例如,你的解决方案包含标记为 web.config 的文件,请为该文件创建一个副本并将其标记为 web.config.token。 你的 web.config 文件不会更改,并将在本地运行应用程序时使用。 web.config.token 文件包含标记,而非实际值。

举例来说,如果你的 web.config 文件包含下面这行内容:

<add key="SMTPHostServer" value="mysmtp.myserver.domain"/>

则 web.config.token 文件将包含下面这行内容,其中 SMTPHostServer 是标记:

<add key="SMTPHostServer" value="SMTPHostServer"/>

请让本地文件与标记文件保持同步。

ms181355.collapse_all(zh-cn,VS.120).gif问:我如何定义应进行扫描以将标记替换为变量的文件?

答:对于你定义的每个组件,可在“配置变量”选项卡上指定文件扩展名筛选器。

组件,“配置变量”选项卡

你为组件指定的部署代理会使用模式匹配扫描需要将标记替换为变量的文件集合。 使用分号 (;) 分隔两个或更多文件扩展名。