Przekształcanie pliku web.config
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z bieżącą wersją, zapoznaj się z wersją tego artykułu platformy .NET 8.
Ostrzeżenie
Ta wersja ASP.NET Core nie jest już obsługiwana. Aby uzyskać więcej informacji, zobacz .NET i .NET Core Support Policy (Zasady obsługi platformy .NET Core). Aby zapoznać się z bieżącą wersją, zapoznaj się z wersją tego artykułu platformy .NET 8.
Ważne
Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany, zanim zostanie wydany komercyjnie. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Aby zapoznać się z bieżącą wersją, zapoznaj się z wersją tego artykułu platformy .NET 8.
Autor: Vijay Ramakrishnan
Przekształcenia w 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 generowania pliku web.config :
- Generowane automatycznie przez zestaw
Microsoft.NET.Sdk.Web
SDK. - Udostępniony przez dewelopera w katalogu głównym zawartości aplikacji.
Konfiguracja kompilacji
Najpierw są uruchamiane przekształcenia konfiguracji kompilacji.
Uwzględnij sieć Web.{ CONFIGURATION}.config pliku dla każdej konfiguracji kompilacji (debugowanie|Wydanie) wymagające przekształcenia web.config .
W poniższym przykładzie zmienna środowiskowa specyficzna dla konfiguracji jest ustawiana w Internecie. 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>
Transformacja jest stosowana, gdy konfiguracja jest ustawiona na Wydanie:
dotnet publish --configuration Release
Właściwość MSBuild dla konfiguracji to $(Configuration)
.
Profil
Przekształcenia profilu są uruchamiane na sekundę po przekształceniu konfiguracji kompilacji .
Uwzględnij sieć Web.{ PROFILE}.config pliku dla każdej konfiguracji profilu wymagającej przekształcenia web.config .
W poniższym przykładzie zmienna środowiskowa specyficzna dla profilu jest ustawiana w Internecie. 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 to FolderProfile:
dotnet publish --configuration Release /p:PublishProfile=FolderProfile
Właściwość MSBuild dla nazwy profilu to $(PublishProfile)
.
Jeśli profil nie zostanie przekazany, domyślną nazwą profilu jest FileSystem i internet. PlikSystem.config jest stosowany, 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 .
Uwzględnij sieć Web.{ ENVIRONMENT}.config plik dla każdego środowiska wymagającego przekształcenia web.config .
W poniższym przykładzie zmienna środowiskowa specyficzna dla środowiska jest ustawiana w Internecie. 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>
Transformacja jest stosowana, 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 ostatnio, po przekształceniu konfiguracji kompilacji, profilu i środowiska .
Dołącz plik {CUSTOM_NAME}.transform dla każdej konfiguracji niestandardowej wymagającej przekształcenia web.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 po CustomTransformFileName
przekazaniu właściwości do polecenia dotnet publish :
dotnet publish --configuration Release /p:CustomTransformFileName=custom.transform
Właściwość MSBuild dla nazwy profilu to $(CustomTransformFileName)
.
Zapobieganie przekształceniu pliku web.config
Aby zapobiec przekształceniom pliku web.config , ustaw właściwość $(IsWebConfigTransformDisabled)
MSBuild :
dotnet publish /p:IsWebConfigTransformDisabled=true