Transformace souboru web.config
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.WebSDK. - 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