Бөлісу құралы:


Переменные среды имеют приоритет в параметрах конфигурации выполнения приложения.

Начиная с .NET 9, приоритет разрешения конфигурации среды выполнения приложения изменился. Если указана переменная среды и соответствующий параметр в файле приложения runtimeconfig.json (или файле проекта), переменная среды имеет приоритет над файлом конфигурации.

Представленная версия

.NET 9

Предыдущее поведение

Ранее, когда были заданы и переменная среды runtimeconfig.json, и соответствующий параметр в приложении runtimeconfig.json, приоритет имел runtimeconfig.json.

Например, рассмотрим приложение со следующим runtimeconfig.json файлом:

{
  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  }
}

Если для переменной DOTNET_gcServer среды задано 0 значение false, приложение по-прежнему будет использовать сборку мусора сервера, так как runtimeconfig.json параметр имеет приоритет. Переменная среды была фактически проигнорирована.

Новое поведение

Начиная с .NET 9, когда задана переменная среды и соответствующий параметр приложения runtimeconfig.json , переменная среды имеет приоритет.

Используя тот же пример, что и в разделе "Предыдущее поведение ", если для переменной DOTNET_gcServer среды задано 0 значение false, приложение теперь использует сборку мусора рабочей станции вместо сборки мусора сервера, даже если runtimeconfig.json указано System.GC.Server как true. Переменная среды переопределяет параметр файла конфигурации.

Тип разрушающего изменения

Это изменение поведения.

Причина изменения

Новое поведение лучше соответствует тому, как конфигурация обычно функционирует в .NET и других системах, при этом переменные среды имеют приоритет.

Если приложение выполняется в среде с переменными среды конфигурации среды выполнения, заданными для значений, отличных от требуемого, переустановите переменную среды или задайте для него требуемое значение конфигурации.

Затронутые API

Нет.

См. также