Transformace souboru web.config

Od Vijay Ramakrishnan

Transformace na soubor web.config lze použít automaticky při publikování aplikace na základě:

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

  • Vygenerováno automaticky sadou Microsoft.NET.Sdk.Web SDK.
  • Poskytl vývojář v kořenu obsahu aplikace.

Konfigurace sestavení

Transformace konfigurace sestavení se spouštějí jako první.

Zahrnout Web. { CONFIGURATION} .config soubor pro každou konfiguraci sestavení (ladění | Release) , která vyžaduje transformaci web.config .

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

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

dotnet publish --configuration Release

vlastnost MSBuild pro konfiguraci je $(Configuration) .

Profil

Transformace profilů se spustí za sekundu po transformaci konfigurace sestavení .

Zahrnout Web. { Profil} .config soubor pro každou konfiguraci profilu, která vyžaduje transformaci web.config .

V následujícím příkladu je proměnná prostředí specifická pro daný profil nastavena v web.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ává žádný profil, výchozí název profilu je systém souborů a web.FileSystem.config se použije, pokud se soubor nachází v kořenu obsahu aplikace.

Prostředí

Transformace prostředí se spouští třetí, po konfiguraci sestavení a transformacích profilů .

Zahrnout Web. { PROSTŘEDÍ} .config souboru pro každé prostředí , které vyžaduje transformaci web.config .

V následujícím příkladu je proměnná prostředí specifická pro prostředí nastavena v web.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í v produkčním prostředí:

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

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

při publikování z Visual Studio a používání profilu publikování, přečtěte si téma Visual Studio publikování profilů (.pubxml) pro ASP.NET Core nasazení aplikací .

ASPNETCORE_ENVIRONMENTProměnná prostředí je automaticky přidána do souboru web.config , pokud je zadán název prostředí.

Vlastní

Vlastní transformace jsou spouštěny jako poslední, po transformaci konfigurace sestavení, profilua prostředí .

Zahrňte {CUSTOM_NAME}. transformační soubor pro každou vlastní konfiguraci, která vyžaduje transformaci web.config .

V následujícím příkladu je proměnná prostředí vlastní transformace nastavena v Custom. transformaci:

<?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 je použita, pokud CustomTransformFileName je vlastnost předána příkazu dotnet Publish :

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

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

Zabránit transformaci web.config

chcete-li zabránit transformaci souboru web.config , nastavte vlastnost MSBuild $(IsWebConfigTransformDisabled) :

dotnet publish /p:IsWebConfigTransformDisabled=true

Další zdroje informací