1

如何在 TFS 和 Release Management 2013.4 的 TfvcRelease 12 构建模板中处理令牌?我有 web.config 和 web.config.tokens 文件。我见过这样的:

http://www.colinsalmcorner.com/post/webdeploy-and-release-management--the-proper-way

但看起来这也可以是一个解决方案:

/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false
4

2 回答 2

3

在构建过程模板的发布部分将“Process tokens”标志设置为true,并确保该web.config.token文件在应用程序的项目文件中设置为“Copy Always”。

我取得了一些成功的另一个选择是为发布构建配置定义一个 web.config 转换。在转换中,将 web.config 中的基线值替换为标记。然后,打开项目文件并添加以下代码段:

<Target Name="AfterBuild">
    <TransformXml Condition="Exists('$(OutDir)\_PublishedWebsites\$(TargetName)')"
                  Source="Web.config"
                  Transform="$(ProjectConfigTransformFileName)"
                  Destination="$(OutDir)\_PublishedWebsites\$(TargetName)\Web.config" />
</Target>

[来源]

该片段将强制配置转换运行,但前提是它构建在 TFS 构建服务器上。它工作得很好。

注意:所有这一切都是在构建过程web.config.token中将文件复制到文件上。web.config然后由您在 RM 中定义组件内的令牌,然后在发布模板中提供值。

于 2015-03-22T14:21:50.090 回答
3

两者都是有效的,但我更喜欢 /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false 因为它更干净。我在这里有一篇博文,详细介绍了如何设置。我的另一篇文章解释了在基于代理的场景中用正在部署的环境的值实际替换令牌的过程。作为我的 VSO 持续交付系列的一部分,我将在本周的某个时候提供此版本的 PowerShell 版本。

于 2015-03-22T14:28:47.850 回答