configProperties dans .runtimeconfig.dev.json remplacent celles de .runtimeconfig.json

Si une application définit la même clé d’exécution configProperties dans .runtimeconfig.json et .runtimeconfig.dev.json, la valeur de .runtimeconfig.dev.json prévaut.

Version introduite

.NET 11 Preview 6

Comportement antérieur

Auparavant, .runtimeconfig.json prenait le pas sur .runtimeconfig.dev.json pour les clés configProperties dupliquées.

Par exemple:

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

Avec cette configuration, le runtime utilisé était System.GC.Concurrent: true.

Nouveau comportement

Pour prendre en charge les remplacements pendant le développement dans .NET 11, .runtimeconfig.dev.json prévaut sur .runtimeconfig.json pour les clés configProperties en double.

En reprenant le même exemple, l’environnement d’exécution utilise désormais System.GC.Concurrent: false.

Type de changement cassant

Ce changement est un changement de comportement.

Raison du changement

Cette modification permet aux développeurs de remplacer les paramètres de production pendant le développement sans modifier les fichiers de configuration de production.

Pour plus d’informations, consultez dotnet/runtime#126606.

Pour un comportement de production prévisible, placez uniquement les remplacements au moment du développement dans .runtimeconfig.dev.json.

Pour empêcher une redéfinition pendant le développement, supprimez la clé en double de .runtimeconfig.dev.json.

API affectées

Aucun.

Voir aussi