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