Przekształcanie pliku web.config

A jest to Vijay Dokishnan

Przekształcenia do pliku web.config mogą być stosowane automatycznie po opublikowaniu aplikacji na podstawie:

Te przekształcenia mają miejsce dla jednego z następujących scenariuszyweb.config generacji:

  • Generowane automatycznie przez zestaw Microsoft.NET.Sdk.Web SDK.
  • Udostępniane przez dewelopera w katalogu głównym zawartości aplikacji.

Konfiguracja kompilacji

Przekształcenia konfiguracji kompilacji są uruchamiane jako pierwsze.

Uwzględnij sieć Web.{ CONFIGURATION}.config dla każdej konfiguracji kompilacji (debugowanie| Wydanie) wymagające web.config przekształcenia.

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 konfiguracji to $(Configuration) .

Profil

Przekształcenia profilu są uruchamiane w sekundach po przekształceniach konfiguracji kompilacji.

Uwzględnij sieć Web.{ PROFILE}.config dla każdej konfiguracji profilu wymagającej web.config przekształcenia.

W poniższym przykładzie zmienna środowiskowa specyficzna dla profilu jest ustawiana wweb.FolderProfile.config 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 to 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 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łceniach Konfiguracja kompilacji i Profil.

Uwzględnij sieć Web.{ ENVIRONMENT}.config dla każdego środowiska wymagającego web.config przekształcenia.

W poniższym przykładzie zmienna środowiskowa jest ustawiana wweb.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 to Production:

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

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

W przypadku publikowania Visual Studio i korzystania z profilu publikowania zobacz Visual Studio publikowania profilów (pubxml) na ASP.NET Core wdrożenia aplikacji .

Zmienna ASPNETCORE_ENVIRONMENT środowiskowa jest automatycznie dodawana doweb.config po podaniu nazwy środowiska.

Niestandardowy

Przekształcenia niestandardowe są uruchamiane jako ostatnie po przekształceniach Konfiguracja kompilacji, Profil i Środowisko.

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

W poniższym przykładzie niestandardowa zmienna środowiskowa przekształcenia jest ustawiana w zmiennej 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 dotnet publish polecenia:

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

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

Zapobieganie web.config przekształcania danych

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

dotnet publish /p:IsWebConfigTransformDisabled=true

Dodatkowe zasoby