转换 web.configTransform web.config

基于以下内容发布应用时,可以自动应用对 web.config 文件的转换:

以下 web.config 生成方案中的任何一个都会发生转换:

  • 由 SDK 自动生成。
  • 由开发人员在应用的内容根目录中提供。

首先运行生成配置转换。

为需要 web.config 转换的每个添加 web.{CONFIGURATION}.config 文件。

以下示例在 web.Release.config 中设置特定于配置的环境变量:

当配置设置为“发布” 时,将应用转换:

  1. dotnet publish --configuration Release

配置的 MSBuild 属性为 $(Configuration)

配置文件Profile

在转换后,第二个运行配置文件转换。

以下示例在 web.FolderProfile.config 中为文件夹发布配置文件设置特定于配置文件的环境变量:

  1. <?xml version="1.0"?>
  2. <location>
  3. <system.webServer>
  4. <aspNetCore>
  5. <environmentVariables xdt:Transform="InsertIfMissing">
  6. <environmentVariable name="Profile_Specific"
  7. value="Profile_Specific_Value"
  8. xdt:Locator="Match(name)"
  9. xdt:Transform="InsertIfMissing" />
  10. </environmentVariables>
  11. </system.webServer>
  12. </location>
  13. </configuration>

当配置文件为 FolderProfile 时,将应用转换:

配置文件名称的 MSBuild 属性为 $(PublishProfile)

如果未传递任何配置文件,则默认配置文件名称为 FileSystem ,如果该文件存在于应用的内容根目录中,则应用 web.FileSystem.config 。

生成配置和转换后,第三个运行环境转换。

为需要 web.config 转换的每个环境添加 web.{ENVIRONMENT}.config 文件。

以下示例在 web.Production.config 中为生产环境设置特定于环境的环境变量:

  1. <?xml version="1.0"?>
  2. <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  3. <system.webServer>
  4. <aspNetCore>
  5. <environmentVariables xdt:Transform="InsertIfMissing">
  6. <environmentVariable name="Environment_Specific"
  7. value="Environment_Specific_Value"
  8. xdt:Locator="Match(name)"
  9. </environmentVariables>
  10. </aspNetCore>
  11. </system.webServer>
  12. </location>
  13. </configuration>

当环境为“生产” 时,将应用转换:

  1. dotnet publish --configuration Release /p:EnvironmentName=Production

从 Visual Studio 发布并使用发布配置文件时,请参阅 。

指定环境名称时,ASPNETCORE_ENVIRONMENT 环境变量会自动添加到 web.config 文件中。

自定义Custom

在、配置文件和转换后,最后运行自定义转换。

为需要 web.config 转换的每个自定义配置添加 {CUSTOM_NAME}.transform 文件。

以下示例在 custom.transform 中设置自定义转换环境变量:

CustomTransformFileName 属性传递给 dotnet publish 命令时,将应用转换:

  1. dotnet publish --configuration Release /p:CustomTransformFileName=custom.transform

配置文件名称的 MSBuild 属性为 $(CustomTransformFileName)

若要阻止转换 web.config 文件,请设置 MSBuild 属性 $(IsWebConfigTransformDisabled)

  1. dotnet publish /p:IsWebConfigTransformDisabled=true

其他资源Additional resources