在TfvcRelease12构建模板2013.4中处理令牌

时间:2015-03-22 13:50:38

标签: tfs tfsbuild tfs2013 release-management ms-release-management

如何处理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

2 个答案:

答案 0 :(得分:3)

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

我取得了一些成功的另一个选择是定义一个web.config转换,例如Release版本配置。在转换中,使用标记替换web.config中的基线值。然后,打开项目文件并添加以下代码段:

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

[Source]

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

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

答案 1 :(得分:3)

两者都有效,但我更喜欢/ p:UseWPP_CopyWebApplication = true / p:PipelineDependsOnBuild = false,因为它更干净。我有一篇博文here,详细介绍了如何进行设置。 my posts中的另一个解释了在基于代理的方案中实际替换令牌的过程中使用的值的过程。作为我的Continuous Delivery with VSO系列的一部分,我本周将有一个PowerShell版本。