Transformace souboru web.config

Autor: Vijay Ramakrishnan

Transformace souboru web.config se dají použít automaticky, když je aplikace publikovaná na základě:

K těmto transformacím dochází u některého z následujících scénářů generování web.config :

  • Automaticky vygenerováno sadou Microsoft.NET.Sdk.Web SDK.
  • Poskytuje vývojář v kořenovém adresáři obsahu aplikace.

Konfigurace sestavení

Nejprve se spustí transformace konfigurace sestavení.

Zahrnout web.{ KONFIGURAČNÍ}.config soubor pro každou konfiguraci sestavení (Ladění|Verze) vyžadující transformaci web.config.

V následujícím příkladu je proměnná prostředí specifická pro konfiguraci nastavená na webu. 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>

Transformace se použije, když je konfigurace nastavená na Verzi:

dotnet publish --configuration Release

Vlastnost MSBuild pro konfiguraci je $(Configuration).

Profil

Transformace profilu se spustí za sekundu po transformaci konfigurace sestavení.

Zahrnout web.{ PROFILE}.config soubor pro každou konfiguraci profilu vyžadující transformaci web.config.

V následujícím příkladu je proměnná prostředí specifická pro profil nastavena na webu. FolderProfile.config pro profil publikování složky:

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

Transformace se použije, když je profil FolderProfile:

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

Vlastnost MSBuild pro název profilu je $(PublishProfile).

Pokud se nepředá žádný profil, výchozí název profilu je FileSystem a web. Soubor FileSystem.config se použije, pokud je soubor v kořenovém adresáři obsahu aplikace.

Prostředí

Transformace prostředí se spustí za třetí po transformaci konfigurace sestavení a profilu .

Zahrnout web.{ SOUBOR ENVIRONMENT}.config pro každé prostředí vyžadující transformaci web.config.

V následujícím příkladu je proměnná prostředí specifická pro prostředí nastavená na webu. Production.config pro produkční prostředí:

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

Transformace se použije, když je prostředí produkční:

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

Vlastnost MSBuild pro prostředí je $(EnvironmentName).

Při publikování ze sady Visual Studio a použití profilu publikování se podívejte na profily publikování sady Visual Studio (.pubxml) pro nasazení aplikace ASP.NET Core.

Proměnná ASPNETCORE_ENVIRONMENT prostředí se automaticky přidá do souboru web.config při zadání názvu prostředí.

Vlastní

Vlastní transformace se spouštějí jako poslední po transformaci sestavení, profilu a prostředí .

Zahrňte soubor {CUSTOM_NAME}.transform pro každou vlastní konfiguraci vyžadující transformaci web.config .

V následujícím příkladu je vlastní transformační proměnná prostředí nastavena ve 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>

Transformace se použije, když CustomTransformFileName se vlastnost předá příkazu dotnet publish :

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

Vlastnost MSBuild pro název profilu je $(CustomTransformFileName).

Prevence transformace web.config

Chcete-li zabránit transformací souboru web.config , nastavte vlastnost $(IsWebConfigTransformDisabled)MSBuild:

dotnet publish /p:IsWebConfigTransformDisabled=true

Další prostředky