Przekształcanie pliku web.config

Przez Vijay Ramakrishnan

Przekształcenia do pliku web.config można stosować automatycznie po opublikowaniu aplikacji na podstawie:

Te przekształcenia są wykonywane w przypadku jednego z następujących scenariuszy generowaniaweb.config :

Konfiguracja kompilacji

Najpierw są uruchamiane przekształcenia konfiguracji kompilacji.

Dołącz sieć Web.{ CONFIGURATION}.config plik dla każdej konfiguracji kompilacji (debugowanie| Wydanie) wymagające przekształceniaweb.config .

W poniższym przykładzie zmienna środowiskowa specyficzna dla konfiguracji jest ustawiana w web.Release.config:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <location>
    <system.webServer>
      <aspNetCore>
        <environmentVariables xdt:Transform="InsertIfMissing">
          <environmentVariable name="Configuration_Specific" 
                               value="Configuration_Specific_Value" 
                               xdt:Locator="Match(name)" 
                               xdt:Transform="InsertIfMissing" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

Przekształcenie jest stosowane, gdy konfiguracja jest ustawiona na Wydanie:

dotnet publish --configuration Release

Właściwość MSBuild dla konfiguracji to $(Configuration).

Profil

Przekształcenia profilu są uruchamiane po przekształceniu konfiguracji kompilacji .

Dołącz sieć Web.{ PROFILE}.config plik dla każdej konfiguracji profilu wymagającej przekształceniaweb.config .

W poniższym przykładzie zmienna środowiskowa specyficzna dla profilu jest ustawiana w web.FolderProfile.config dla profilu publikowania folderu:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <location>
    <system.webServer>
      <aspNetCore>
        <environmentVariables xdt:Transform="InsertIfMissing">
          <environmentVariable name="Profile_Specific" 
                               value="Profile_Specific_Value" 
                               xdt:Locator="Match(name)" 
                               xdt:Transform="InsertIfMissing" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

Przekształcenie jest stosowane, gdy profil ma wartość FolderProfile:

dotnet publish --configuration Release /p:PublishProfile=FolderProfile

Właściwość MSBuild dla nazwy profilu to $(PublishProfile).

Jeśli profil nie zostanie przekazany, domyślna nazwa profilu to FileSystem i web.FileSystem.config zostanie zastosowana, jeśli plik znajduje się w katalogu głównym zawartości aplikacji.

Środowisko

Przekształcenia środowiska są uruchamiane na trzecim miejscu po przekształceniu konfiguracji kompilacji i profilu .

Dołącz sieć Web.{ ENVIRONMENT}.config plik dla każdego środowiska wymagającego przekształceniaweb.config .

W poniższym przykładzie zmienna środowiskowa jest ustawiana w web.Production.config dla środowiska produkcyjnego:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <location>
    <system.webServer>
      <aspNetCore>
        <environmentVariables xdt:Transform="InsertIfMissing">
          <environmentVariable name="Environment_Specific" 
                               value="Environment_Specific_Value" 
                               xdt:Locator="Match(name)" 
                               xdt:Transform="InsertIfMissing" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

Przekształcenie jest stosowane, gdy środowisko jest produkcyjne:

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

Właściwość MSBuild dla środowiska to $(EnvironmentName).

Podczas publikowania z programu Visual Studio i korzystania z profilu publikowania zobacz Profile publikowania programu Visual Studio (.pubxml) dla wdrożenia aplikacji ASP.NET Core.

Zmienna ASPNETCORE_ENVIRONMENT środowiskowa jest automatycznie dodawana do pliku web.config po określeniu nazwy środowiska.

Niestandardowy

Przekształcenia niestandardowe są uruchamiane jako ostatnie, po przekształceniu konfiguracji kompilacji, profilu i środowiska .

Dołącz plik {CUSTOM_NAME}.transform dla każdej konfiguracji niestandardowej wymagającej przekształceniaweb.config .

W poniższym przykładzie niestandardowa zmienna środowiskowa przekształcenia jest ustawiana w pliku custom.transform:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <location>
    <system.webServer>
      <aspNetCore>
        <environmentVariables xdt:Transform="InsertIfMissing">
          <environmentVariable name="Custom_Specific" 
                               value="Custom_Specific_Value" 
                               xdt:Locator="Match(name)" 
                               xdt:Transform="InsertIfMissing" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

Przekształcenie jest stosowane, gdy CustomTransformFileName właściwość jest przekazywana do polecenia dotnet publish :

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

Właściwość MSBuild dla nazwy profilu to $(CustomTransformFileName).

Zapobieganie przekształceniu web.config

Aby zapobiec przekształceniom pliku web.config , ustaw właściwość $(IsWebConfigTransformDisabled)MSBuild :

dotnet publish /p:IsWebConfigTransformDisabled=true

Dodatkowe zasoby