Web.config’i dönüştürme

VijayHitkrishnan tarafından

Aşağıdaki temel web.config dosya dönüştürmeleri, bir uygulama yayımlanırken otomatik olarak uygulanabilir:

Bu dönüştürmeler aşağıdaki örnek oluşturma senaryolarınınweb.config oluşur:

  • SDK tarafından otomatik olarak Microsoft.NET.Sdk.Web oluşturulur.
  • Geliştirici tarafından uygulamanın içerik kökünde sağlanır.

Yapı yapılandırması

Önce derleme yapılandırma dönüşümleri yapılandırmasını çalıştırın.

Web'i dahil edin.{ CONFIGURATION}.config yapılandırma (Hata ayıklama) için bir dosya oluştur| Yayın) için bir web.configgerekiyor.

Aşağıdaki örnekte, içinde yapılandırmaya özgü bir ortam değişkeni 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>

Dönüştürme, yapılandırma Yayın olarak ayar olduğunda uygulanır:

dotnet publish --configuration Release

Yapılandırmanın MSBuild $(Configuration) özelliğidir.

Profil

Profil dönüştürmeleri, Derleme yapılandırması dönüşümleri sonrasında ikinci olarak çalıştırmanız gerekir.

Web'i dahil edin.{ PROFILE}.config bir dönüştürme gerektiren her profil yapılandırması için web.config dosyası.

Aşağıdaki örnekte, klasör yayımlama profili için profile web.FolderProfile.config 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="Profile_Specific" 
                               value="Profile_Specific_Value" 
                               xdt:Locator="Match(name)" 
                               xdt:Transform="InsertIfMissing" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

Profil FolderProfile olduğunda dönüştürme uygulanır:

dotnet publish --configuration Release /p:PublishProfile=FolderProfile

Profil MSBuild için bir profil $(PublishProfile) özelliğidir.

Hiçbir profil geçir geçirilse, varsayılan profil adı DosyaSistem olur web.FileSystem.config uygulamanın içerik kökünde varsa varsayılan profil uygulanır.

Ortam

Ortam dönüştürmeleri üçüncü çalıştırma, Derleme yapılandırması ve Profil dönüşümleri sonrasında yapılandırmasını tamamlar.

Web'i dahil edin.{ ENVIRONMENT}.config dönüştürme gerektiren her ortam için birweb.config dosyası.

Aşağıdaki örnekte, Üretim ortamı için bir ortamaweb.Production.config 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="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 $(EnvironmentName) özelliğidir.

Yayımlama profilinden Visual Studio yayımlama profili kullanırken, bkz. Visual Studio dağıtımı için yayımlama profillerini (.pubxml) ASP.NET Core yayımlama .

Ortam ASPNETCORE_ENVIRONMENT adı belirtilirken ortam değişkeniweb.config otomatik olarak dosyaya eklenir.

Özel

Özel dönüştürmeler en son Derleme yapılandırması, Profilve Ortamdönüşümleri sonrasında çalıştır.

Tek bir CUSTOM_NAME gerektiren her özel yapılandırma için {web.config}.transform dosyası içerir.

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, özellik dotnet publish CustomTransformFileName komutuna geçir dotnet publish uygulanır:

dotnet publish --configuration Release /p:CustomTransformFileName=custom.transform

Profil MSBuild için bir profil $(CustomTransformFileName) özelliğidir.

Dönüştürmeyi web.config engelleme

Dosyanınweb.config önlemek için MSBuild $(IsWebConfigTransformDisabled) ayarlayın:

dotnet publish /p:IsWebConfigTransformDisabled=true

Ek kaynaklar