konfigurationsegenskaper i .runtimeconfig.dev.json åsidosätter .runtimeconfig.json

Om en app definierar samma runtime-nyckel configProperties i både .runtimeconfig.json och .runtimeconfig.dev.json, prioriteras värdet i .runtimeconfig.dev.json.

Version lanserad

.NET 11 Förhandsversion 6

Tidigare beteende

Tidigare hade .runtimeconfig.json företräde framför .runtimeconfig.dev.json för dubbla configProperties-nycklar.

Ett exempel:

// app.runtimeconfig.json
{
  "runtimeOptions": {
    "configProperties": {
      "System.GC.Concurrent": true
    }
  }
}
// app.runtimeconfig.dev.json
{
  "runtimeOptions": {
    "configProperties": {
      "System.GC.Concurrent": false
    }
  }
}

Med den här konfigurationen användes System.GC.Concurrent: true som körmiljö.

Nytt beteende

För att stödja åsidosättningar under utveckling i .NET 11 har .runtimeconfig.dev.json företräde framför .runtimeconfig.json för duplicerade configProperties-nycklar.

Med samma exempel använder körningen nu System.GC.Concurrent: false.

Typ av brytande ändring

Den här ändringen är en beteendeförändring.

Orsak till ändringen

Den här ändringen gör det möjligt för utvecklare att åsidosätta produktionsinställningar under utvecklingen utan att ändra konfigurationsfiler för produktion.

Mer information finns i dotnet/runtime#126606.

För förutsägbart produktionsbeteende placerar du bara åsidosättningar för utvecklingstid i .runtimeconfig.dev.json.

Om du vill förhindra en åsidosättning av utvecklingstid tar du bort dubblettnyckeln från .runtimeconfig.dev.json.

Berörda API:er

Ingen.

Se även