Visual Studio 的发布管理 - 删除 Web.Config 密钥

Release Management for Visual Studio - Remove Web.Config Key

在 Visual Studio 2013 的发布管理构建过程中,从 web.config 中删除密钥的推荐方法是什么?

使用 web.config 转换,或为 web.config 中的整行添加一个标记(而不是使用一个值的标记)?

Web.config 变换:

  <connectionStrings>
    <add name="myConnectionString" connectionString=""
      xdt:Transform="Remove" xdt:Locator="Match(name)"/>
  </connectionStrings>

令牌替换:

__myConnectionString__

我不确定 推荐的方式,但我推荐的在构建期间更改 Web.config 的方式是使用 Web.config transform。所以,在 Web.Release.config 中(不要忘记,如果你正确地进行持续交付,你的构建可以一直运行,所以你需要作为发布构建)你可能有这样的连接字符串:

<connectionStrings>
<add name="My ConnectionString"
     connectionString="Data Source=__DATA_SOURCE__;Initial Catalog=__INITIAL_CATALOG__;Integrated Security=SSPI;"providerName="System.Data.SqlClient"
     xdt:Transform="SetAttributes"xdt:Locator="Match(name)"/>
</connectionStrings>

这会在构建后在 Web.config 中生成连接字符串的标记化版本,因此如果您想要一些不同的东西,例如要完全删除它们,显然可以使用 Remove 转换。您可以在我的博客 post here 中查看更多上下文。请注意,我将转换与 /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false MSBuild 参数结合使用。

您应该对您希望在构建时发生的事情使用转换。就像删除您仅在开发中使用的任何位一样。

我通常对本地值进行硬编码,然后在转换过程中用发布管理密钥替换它们。然后RM可以拥有剩下的。