Sdílet prostřednictvím


Transformace souboru web.config

Poznámka:

Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.

Upozorňující

Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v tématu .NET a .NET Core Zásady podpory. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.

Důležité

Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.

Aktuální verzi najdete ve verzi .NET 8 tohoto článku.

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ší materiály