【问题标题】:Process tokens in TfvcRelease12 build template 2013.4在 TfvcRelease12 构建模板 2013.4 中处理令牌
【发布时间】:2015-03-22 13:50:38
【问题描述】:

如何在 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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    [Source]

    该 sn-p 将强制配置转换运行,但前提是它构建在 TFS 构建服务器上。效果很好。

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

    【讨论】:

    • 开启“进程令牌”效果很好!通常是否建议在“将输出复制到文件夹”属性中将 web.config 和 web.config.token 都设置为“不复制”?
    • 您是否有理由需要维护 web.config.token 文件的开销?如果您使用转换技术,则不需要令牌文件 - 更简洁。
    • @GrahamSmith 同意。我回答了上述问题,然后提供了配置转换方法作为替代方法。我没有强烈的偏好。令牌文件方法很好,因为它普遍适用——您可以使用 app.configs 来实现。 Web.config 转换就是:web.config 转换。
    • @DanielMann 很抱歉——我的意思是向 m00nbeam360 提出这个问题。同意这确实意味着以不同的方式对待 app.configs。我知道它最近没有更新,但我在我的待办事项清单上查看了 SlowCheetah。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-02-01
      • 2023-03-04
      • 2015-03-15
      • 1970-01-01
      • 2013-05-05
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 2020-12-18
      相关资源
      最近更新 更多