Elementy configProperties w pliku .runtimeconfig.dev.json zastępują te z pliku .runtimeconfig.json

Jeśli aplikacja definiuje ten sam klucz czasu wykonywania configProperties zarówno w .runtimeconfig.json, jak i w .runtimeconfig.dev.json, wartość .runtimeconfig.dev.json ma pierwszeństwo.

Wersja wprowadzona

.NET 11 (wersja zapoznawcza 6)

Poprzednie zachowanie

Wcześniej .runtimeconfig.json miało pierwszeństwo przed .runtimeconfig.dev.json w przypadku zduplikowanych kluczy configProperties.

Przykład:

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

W przypadku tej konfiguracji środowisko uruchomieniowe używało polecenia System.GC.Concurrent: true.

Nowe zachowanie

Aby obsługiwać przesłonięcia na etapie programowania w .NET 11, .runtimeconfig.dev.json ma pierwszeństwo przed .runtimeconfig.json w przypadku zduplikowanych kluczy configProperties.

W tym samym przykładzie środowisko uruchomieniowe używa teraz polecenia System.GC.Concurrent: false.

Typ zmiany przełamującej

Ta zmiana jest zmianą behawioralną.

Przyczyna zmiany

Ta zmiana umożliwia deweloperom zastępowanie ustawień produkcyjnych podczas programowania bez modyfikowania plików konfiguracji produkcyjnych.

Aby uzyskać więcej informacji, zobacz dotnet/runtime#126606.

Aby zapewnić przewidywalne działanie w środowisku produkcyjnym, w .runtimeconfig.dev.json należy umieszczać tylko nadpisania używane na etapie programowania.

Aby zapobiec nadpisaniu na etapie programowania, usuń zduplikowany klucz z .runtimeconfig.dev.json.

Interfejsy API, których dotyczy problem

Brak.

Zobacz także