Transformieren von web.config
Hinweis
Dies ist nicht die neueste Version dieses Artikels. Die aktuelle Version finden Sie in der .NET 9-Version dieses Artikels.
Warnung
Diese Version von ASP.NET Core wird nicht mehr unterstützt. Weitere Informationen finden Sie in der Supportrichtlinie für .NET und .NET Core. Informationen zum aktuellen Release finden Sie in der .NET 8-Version dieses Artikels.
Wichtig
Diese Informationen beziehen sich auf ein Vorabversionsprodukt, das vor der kommerziellen Freigabe möglicherweise noch wesentlichen Änderungen unterliegt. Microsoft gibt keine Garantie, weder ausdrücklich noch impliziert, hinsichtlich der hier bereitgestellten Informationen.
Die aktuelle Version finden Sie in der .NET 9-Version dieses Artikels.
Transformationen der web.config-Datei können automatisch angewendet werden, wenn eine App veröffentlicht wird basierend auf:
Diese Transformationen kommen bei den folgenden web.config-Generierungsszenarien vor:
- Automatisch generiert vom
Microsoft.NET.Sdk.Web
-SDK. - Durch den Entwickler im Inhaltsstammverzeichnis der App bereitgestellt.
Buildkonfiguration
Transformationen der Buildkonfiguration werden zuerst ausgeführt.
Beziehen Sie eine web.{KONFIGURATION}.config-Datei für jede Buildkonfiguration (Debug|Release) ein, die eine web.config-Transformation erfordert.
Im folgenden Beispiel wird eine konfigurationsspezifische Umgebungsvariable in web.Release.config festgelegt:
<?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>
Die Transformation wird angewendet, wenn die Konfiguration auf Release festgelegt ist:
dotnet publish --configuration Release
Die MSBuild-Eigenschaft für die Konfiguration ist $(Configuration)
.
Profile
Profiltransformationen werden als Zweites nach den Transformationen der Buildkonfiguration ausgeführt.
Beziehen Sie eine web.{PROFIL}.config-Datei für jede Profilkonfiguration ein, die eine web.config-Transformation erfordert.
Im folgenden Beispiel wird eine profilspezifische Umgebungsvariable in web.FolderProfile.config für ein Ordnerveröffentlichungsprofil festgelegt:
<?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>
Die Transformation wird bei dem Profil FolderProfile angewendet:
dotnet publish --configuration Release /p:PublishProfile=FolderProfile
Die MSBuild-Eigenschaft für den Profilnamen ist $(PublishProfile)
.
Wenn kein Profil übergeben wird, lautet der Standardname für das Profil FileSystem, und web.FileSystem.config wird angewendet, wenn die Datei im Inhaltsstammverzeichnis der App vorhanden ist.
Umgebung
Umgebungstransformationen werden als Drittes nach den Transformationen von Buildkonfiguration und Profil ausgeführt.
Beziehen Sie eine web.{UMGEBUNG}.config-Datei für jede Umgebung ein, die eine web.config-Transformation erfordert.
Im folgenden Beispiel wird eine umgebungsspezifische Umgebungsvariable in web.Production.config für die Produktionsumgebung festgelegt:
<?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>
Die Transformation wird angewendet, wenn die Umgebung Production ist:
dotnet publish --configuration Release /p:EnvironmentName=Production
Die MSBuild-Eigenschaft für die Umgebung ist $(EnvironmentName)
.
Wenn Sie die Veröffentlichung über Visual Studio durchführen und ein Veröffentlichungsprofil verwenden, finden Sie weitere Informationen unter Visual Studio-Veröffentlichungsprofile (PUBXML) für die Bereitstellung von ASP.NET Core-Apps.
Die ASPNETCORE_ENVIRONMENT
-Umgebungsvariable wird automatisch der web.config-Datei hinzugefügt, wenn der Name der Umgebung angegeben wird.
Benutzerdefiniert
Benutzerdefinierte Transformationen werden als Letztes nach den Transformationen von Buildkonfiguration, Profil und Umgebung ausgeführt.
Beziehen Sie eine {BENUTZERDEFINIERTER_NAME}.transform-Datei für jede benutzerdefinierte Konfiguration ein, die eine web.config-Transformation erfordert.
Im folgenden Beispiel wird eine benutzerdefinierte Transformationsumgebungsvariable in custom.transform festgelegt:
<?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>
Die Transformation wird angewendet, wenn die CustomTransformFileName
-Eigenschaft dem dotnet publish-Befehl übergeben wird:
dotnet publish --configuration Release /p:CustomTransformFileName=custom.transform
Die MSBuild-Eigenschaft für den Profilnamen ist $(CustomTransformFileName)
.
Verhindern der web.config-Transformation
Um Transformationen der web.config-Datei zu verhindern, legen Sie die MSBuild-Eigenschaft $(IsWebConfigTransformDisabled)
fest:
dotnet publish /p:IsWebConfigTransformDisabled=true