【问题标题】:Release Management - Change Connection String using Tokenize发布管理 - 使用 Tokenize 更改连接字符串
【发布时间】:2015-11-14 00:21:19
【问题描述】:

我希望这是一个非常直截了当的问题...根据我在网上找到的内容,通过 Microsoft 发布管理管理更改的 web.config 连接字符串的最佳方法是使用tokanized web.config 文件(即复制web.config 并将其重命名为 web.tokenized.config) 然后对连接字符串进行tokanize。

然而,我无法找到的是为什么需要制作一个单独的“标记化”web.config……这个文件是通过 web.config 引用的吗?在原始 web.config 中应用标记化参数是不好的做法吗?

【问题讨论】:

    标签: tfs web-config tokenize ms-release-management


    【解决方案1】:

    来自documentation“一个版本是你在本地开发时使用的普通配置文件,另一个是对应的文件,内容相同,只是你的变量没有本地值,而是放了令牌. 构建活动将在构建之前交换这两个文件,以便我们最终在放置位置获得配置文件的标记化版本。”

    在我看来,维护配置文件的副本是一项痛苦的维护开销,因为它们必须保持同步。如果可能的话,最好将生成标记化的配置文件作为构建过程的一部分。对于 web.config,您可以将转换功能与 /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false MSBuild 参数结合使用。我有一篇博文here 有详细信息。

    【讨论】:

      【解决方案2】:

      您需要 web.config 的“未标记化”版本才能从 Visual Studio 在本地调试/运行应用程序。

      【讨论】:

      • 说的有道理...所以当项目发布时,它会知道使用web.tokenized.config而不是web.config吗?我需要自己设置吗?
      • 在构建过程中TFS会替换token;您必须将以下 MSBuild 参数添加到构建定义中:/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false您可以找到更多详细信息here
      • 这听起来正是我所追求的,而且我已经非常接近实现它了。我已经设置了我的 web.release.config,我的 web.config 中有匹配的连接字符串...我已经按照示例中的说明配置了我的构建定义,但是当它进入 TFS 时,我收到包位置不能的错误被找到(当它尝试处理组件时。有趣的是,如果我取出 2)Build --> Configurations 的 Release / Any CPU 值,那么它会成功构建和部署,但 web.release.config 不会覆盖 web.config ...? :( 这么近!!
      • 能否告诉我使用生产环境的 TFS 发布管道替换 web.cong 文件下的值的简单方法
      猜你喜欢
      • 2011-01-23
      • 2012-01-23
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      相关资源
      最近更新 更多