Przekształcanie pliku web.config
Przez Vijay Ramakrishnan
Przekształcenia do pliku web.config można stosować automatycznie po opublikowaniu aplikacji na podstawie:
Te przekształcenia są wykonywane w przypadku jednego z następujących scenariuszy generowaniaweb.config :
- Generowane automatycznie przez zestaw
Microsoft.NET.Sdk.Web
SDK. - Udostępnione przez dewelopera w katalogu głównym zawartości aplikacji.
Konfiguracja kompilacji
Najpierw są uruchamiane przekształcenia konfiguracji kompilacji.
Dołącz sieć Web.{ CONFIGURATION}.config plik dla każdej konfiguracji kompilacji (debugowanie| Wydanie) wymagające przekształceniaweb.config .
W poniższym przykładzie zmienna środowiskowa specyficzna dla konfiguracji jest ustawiana w 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>
Przekształcenie jest stosowane, gdy konfiguracja jest ustawiona na Wydanie:
dotnet publish --configuration Release
Właściwość MSBuild dla konfiguracji to $(Configuration)
.
Profil
Przekształcenia profilu są uruchamiane po przekształceniu konfiguracji kompilacji .
Dołącz sieć Web.{ PROFILE}.config plik dla każdej konfiguracji profilu wymagającej przekształceniaweb.config .
W poniższym przykładzie zmienna środowiskowa specyficzna dla profilu jest ustawiana w web.FolderProfile.config dla profilu publikowania folderu:
<?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>
Przekształcenie jest stosowane, gdy profil ma wartość FolderProfile:
dotnet publish --configuration Release /p:PublishProfile=FolderProfile
Właściwość MSBuild dla nazwy profilu to $(PublishProfile)
.
Jeśli profil nie zostanie przekazany, domyślna nazwa profilu to FileSystem i web.FileSystem.config zostanie zastosowana, jeśli plik znajduje się w katalogu głównym zawartości aplikacji.
Środowisko
Przekształcenia środowiska są uruchamiane na trzecim miejscu po przekształceniu konfiguracji kompilacji i profilu .
Dołącz sieć Web.{ ENVIRONMENT}.config plik dla każdego środowiska wymagającego przekształceniaweb.config .
W poniższym przykładzie zmienna środowiskowa jest ustawiana w web.Production.config dla środowiska produkcyjnego:
<?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>
Przekształcenie jest stosowane, gdy środowisko jest produkcyjne:
dotnet publish --configuration Release /p:EnvironmentName=Production
Właściwość MSBuild dla środowiska to $(EnvironmentName)
.
Podczas publikowania z programu Visual Studio i korzystania z profilu publikowania zobacz Profile publikowania programu Visual Studio (.pubxml) dla wdrożenia aplikacji ASP.NET Core.
Zmienna ASPNETCORE_ENVIRONMENT
środowiskowa jest automatycznie dodawana do pliku web.config po określeniu nazwy środowiska.
Niestandardowy
Przekształcenia niestandardowe są uruchamiane jako ostatnie, po przekształceniu konfiguracji kompilacji, profilu i środowiska .
Dołącz plik {CUSTOM_NAME}.transform dla każdej konfiguracji niestandardowej wymagającej przekształceniaweb.config .
W poniższym przykładzie niestandardowa zmienna środowiskowa przekształcenia jest ustawiana w pliku 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>
Przekształcenie jest stosowane, gdy CustomTransformFileName
właściwość jest przekazywana do polecenia dotnet publish :
dotnet publish --configuration Release /p:CustomTransformFileName=custom.transform
Właściwość MSBuild dla nazwy profilu to $(CustomTransformFileName)
.
Zapobieganie przekształceniu web.config
Aby zapobiec przekształceniom pliku web.config , ustaw właściwość $(IsWebConfigTransformDisabled)
MSBuild :
dotnet publish /p:IsWebConfigTransformDisabled=true