Web.config’i dönüştürme
Uyarı
ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.
Tarafından Vijay Ramakrishnan
Web.config dosyasına dönüştürmeler, bir uygulama aşağıdakilere göre yayımlandığında otomatik olarak uygulanabilir:
Bu dönüştürmeler aşağıdaki web.config oluşturma senaryolarından biri için gerçekleşir:
- SDK tarafından
Microsoft.NET.Sdk.Web
otomatik olarak oluşturulur. - Geliştirici tarafından uygulamanın içerik kökünde sağlanır.
Yapı yapılandırması
Derleme yapılandırma dönüşümleri önce çalıştırılır.
Web ekleyin.{ Her derleme yapılandırması için CONFIGURATION}.config dosyası (Hata Ayıklama|Sürüm) bir web.config dönüşümü gerektirir.
Aşağıdaki örnekte, web'de yapılandırmaya özgü bir ortam değişkeni ayarlanmıştır. 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>
Dönüştürme, yapılandırma Yayın olarak ayarlandığında uygulanır:
dotnet publish --configuration Release
Yapılandırma için MSBuild özelliği şeklindedir $(Configuration)
.
Profil
Profil dönüştürmeleri, Derleme yapılandırması dönüşümlerinden sonra ikinci olarak çalıştırılır.
Web ekleyin.{ Web.config dönüşümü gerektiren her profil yapılandırması için PROFILE}.config dosyası.
Aşağıdaki örnekte, web'de profile özgü bir ortam değişkeni ayarlanmıştır. Klasör yayımlama profili için FolderProfile.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="Profile_Specific"
value="Profile_Specific_Value"
xdt:Locator="Match(name)"
xdt:Transform="InsertIfMissing" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</location>
</configuration>
Dönüştürme, profil FolderProfile olduğunda uygulanır:
dotnet publish --configuration Release /p:PublishProfile=FolderProfile
Profil adının MSBuild özelliği şeklindedir $(PublishProfile)
.
Hiçbir profil geçirilmezse, varsayılan profil adı FileSystem ve web'dir. Dosya, uygulamanın içerik kökünde mevcutsa FileSystem.config uygulanır.
Ortam
Ortam dönüştürmeleri, Derleme yapılandırması ve Profil dönüşümlerinden sonra üçüncü sırada çalıştırılır.
Web ekleyin.{ Web.config dönüşümü gerektiren her ortam için ENVIRONMENT}.config dosyası.
Aşağıdaki örnekte, web'de ortama özgü bir ortam değişkeni ayarlanmıştır. Üretim ortamı için Production.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="Environment_Specific"
value="Environment_Specific_Value"
xdt:Locator="Match(name)"
xdt:Transform="InsertIfMissing" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</location>
</configuration>
Dönüştürme, ortam Üretim olduğunda uygulanır:
dotnet publish --configuration Release /p:EnvironmentName=Production
Ortamın MSBuild özelliği şeklindedir $(EnvironmentName)
.
Visual Studio'dan yayımlarken ve yayımlama profili kullanırken bkz . ASP.NET Core uygulama dağıtımı için Visual Studio yayımlama profilleri (.pubxml).
Ortam ASPNETCORE_ENVIRONMENT
adı belirtildiğinde ortam değişkeni web.config dosyasına otomatik olarak eklenir.
Özel
Özel dönüştürmeler, Derleme yapılandırması, Profil ve Ortam dönüşümlerinden sonra en son çalıştırılır.
Web.config dönüşümü gerektiren her özel yapılandırma için bir {CUSTOM_NAME}.transform dosyası ekleyin.
Aşağıdaki örnekte custom.transform içinde bir özel dönüştürme ortamı değişkeni ayarlanmıştır:
<?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>
Dönüştürme, özelliği dotnet publish komutuna geçirildiğinde CustomTransformFileName
uygulanır:
dotnet publish --configuration Release /p:CustomTransformFileName=custom.transform
Profil adının MSBuild özelliği şeklindedir $(CustomTransformFileName)
.
Web.config dönüştürmesini engelleme
web.config dosyasının dönüşümlerini önlemek için MSBuild özelliğini $(IsWebConfigTransformDisabled)
ayarlayın:
dotnet publish /p:IsWebConfigTransformDisabled=true
Ek kaynaklar
ASP.NET Core