Przekształcanie pliku web.config

Autor: Vijay Ramakrishnan

Przekształcenia w 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 generowania pliku web.config :

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

Konfiguracja kompilacji

Najpierw są uruchamiane przekształcenia konfiguracji kompilacji.

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

W poniższym przykładzie zmienna środowiskowa specyficzna dla konfiguracji jest ustawiana w Internecie. 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>

Transformacja jest stosowana, gdy konfiguracja jest ustawiona na Wydanie:

dotnet publish --configuration Release

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

Profil

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

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

W poniższym przykładzie zmienna środowiskowa specyficzna dla profilu jest ustawiana w Internecie. 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 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ślną nazwą profilu jest FileSystem i internet. PlikSystem.config jest stosowany, 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 .

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

W poniższym przykładzie zmienna środowiskowa specyficzna dla środowiska jest ustawiana w Internecie. 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>

Transformacja jest stosowana, 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.

Okres niestandardowy

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

Dołącz plik {CUSTOM_NAME}.transform dla każdej konfiguracji niestandardowej wymagającej przekształcenia web.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 po CustomTransformFileName przekazaniu właściwości do polecenia dotnet publish :

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

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

Zapobieganie przekształceniu pliku web.config

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

dotnet publish /p:IsWebConfigTransformDisabled=true

Dodatkowe zasoby