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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro