【问题标题】:How do I change an web.config setting using transformation syntax?如何使用转换语法更改 web.config 设置?
【发布时间】:2017-09-12 17:55:18
【问题描述】:

我的 web.config 文件中存储了一个值,我想在网站发布时更改该值。我想将其从 TEST 更改为 LIVE。

<appSettings>
    <add key="RequestMode" value="TEST" />
    // other keys here
</appSettings>

这可能使用 web.config 转换语法吗?如果有,怎么做?

谢谢。

【问题讨论】:

    标签: asp.net web-config config-transformation


    【解决方案1】:

    是的,这可以通过转换语法实现。这种转换应该可以解决问题:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
      <appSettings>
        <add key="RequestMode" value="LIVE" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
      </appSettings>
    </configuration>
    

    【讨论】:

    • 它如何知道何时使用哪种转换?它是文件命名约定吗?因为它知道在调试模式下使用 Web.Debug.config 文件,在发布模式下使用 Web.Release.config?
    • @user1534664 是的,这是一个命名约定。 Web.Release.config 中的 Release 对应于当前的构建配置。因此,如果您有一个名为 Staging 的自定义构建配置,您将创建一个 Web.Staging.config 文件。
    • 我喜欢这个答案,因为它允许我专门替换键而不是整个应用程序设置
    【解决方案2】:

    这可以使用 Visual Studio 2010 开箱即用。唯一需要注意的是,当您使用其中的发布工具时,此过程是在 Visual Studio 中运行的。您将无法从 MSBuild 获得这种转换(这会妨碍自动构建)。

    <appSettings xdt:Transform="Replace">  <add key="ProdKeyA" value="ProdValA"/>  <add key="ProdKeyB" value="ProdValB"/>  <add key="ProdKeyC" value="ProdValC"/></appSettings>
    

    来源:Web.Config Transformations VS 2010

    还要确保您的 Web.Config.XXXX 转换文件与您的构建定义相匹配。例如,默认情况下支持调试和发布,因此您需要有一个 Web.Config.Release 以在发布模式下发布时调整 Web.Config。

    【讨论】:

    【解决方案3】:

    我在 http://mundrisoft.com/tech-bytes/web-config-transformation-for-project-deployment/ 找到了下面的代码,它正在工作:

    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
      <connectionStrings>
        <add name="MyDB" 
          connectionString="ReleaseSQLServer" 
          xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
      </connectionStrings>
    </configuration
    

    【讨论】:

      【解决方案4】:

      您还可以使用 CTT 工具进行 Web 转换CTT Website 然后,您可以在发布文件后,在部署之前使用 powershell 转换 Web 配置(保留转换文件),然后在部署期间简单地更改名称

      【讨论】:

        猜你喜欢
        • 2014-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-17
        • 1970-01-01
        • 2012-05-02
        • 2018-07-19
        相关资源
        最近更新 更多