为开发和生产环境修改 web.config

Modifying web.config for development and production environments

我有一个 webApi 项目,在部署到开发环境后,我需要编辑 web.config 并将与数据库的连接从生产配置更改为开发配置,如果我需要部署到生产环境,则返回。 如何在我的项目中使用的发布或调试中为选定的开发或生产自动设置 webconfig?

要指定要在 Web.config 文件中进行的更改,您可以使用转换文件。转换文件与生成配置相关联。

如果要为不存在的自定义生成配置创建转换文件,请先使用 Configuration Manager 创建生成配置。

您可以通过从“生成”菜单中选择配置管理器来打开它。

在解决方案资源管理器中,展开应用程序 Web.config 文件。

如果已经创建了任何转换文件,Web.config 文件将显示在解决方案资源管理器中,并带有一个符号,表示它可以展开,当您展开 Web.config 文件。

转换所针对的构建配置由文件名中的字符串指示。例如,调试构建配置的转换文件名为 Web.Debug.config.

如果您要为其指定设置的生成配置不存在转换文件,请在解决方案资源管理器中右键单击 Web.config 文件,然后单击“添加配置转换”。

打开您要使用的生成配置的转换文件。

编辑转换文件以指定在使用该生成配置进行部署时应对已部署的 Web.config 文件进行的更改。

默认转换文件包含说明如何编写一些常见转换代码的注释。

以下示例说明如何使用 Match 定位器和 SetAttributes 转换属性。 Match 定位器属性将 connectionStrings 部分中的 add 元素标识为要更改的元素。 SetAttributes 转换属性指定此元素的 connectionString 属性应更改为 "ReleaseSQLServer".

<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>

保存并关闭转换文件。

当您使用选定的生成配置并使用部署包或一键发布来部署 Web 应用程序时,Web.config 文件会根据您的规范进行转换。