Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
.NET предоставляет следующие механизмы настройки поведения среды выполнения .NET:
Механизм | Примечания. |
---|---|
Файлruntimeconfig.json | Применяет параметр к конкретному приложению. Используйте этот файл, если несколько экземпляров приложения выполняются одновременно в одной системе, и вы хотите настроить каждую из них для оптимальной производительности. |
свойства MSBuild | Применяет параметр к конкретному приложению. Свойства MSBuild имеют приоритет над параметрами в runtimeconfig.json. |
переменные среды | Применяет этот параметр ко всем приложениям .NET. |
Некоторые значения конфигурации также можно задать программным способом AppContext.SetSwitch , вызвав метод.
Замечание
Статьи, приведенные в этом разделе, касаются конфигурации самой среды выполнения .NET. Если вы переносите приложение из .NET Framework в .NET и ищете замену файлаapp.config , см. статью "Модернизация после обновления до .NET". Сведения о предоставлении пользовательских значений конфигурации приложениям .NET см. в разделе "Конфигурация" в .NET.
Статьи в этом разделе документации организованы по категориям, например отладке и сборке мусора. При необходимости параметры конфигурации отображаются для файловruntimeconfig.json , свойств MSBuild, переменных среды и для перекрестной ссылки app.config файлов для проектов .NET Framework.
runtimeconfig.json
При построении проекта в выходном каталоге создается файл [appname],.runtimeconfig.json . Если файлruntimeconfig.template.json существует в той же папке, что и файл проекта, все параметры конфигурации, содержащиеся в нем, вставляются в файл .runtimeconfig.json[appname] . Если вы создаете приложение самостоятельно, поместите все параметры конфигурации в файлruntimeconfig.template.json . Если вы только что запускаете приложение, вставьте их непосредственно в файл [appname].runtimeconfig.json .
Замечание
- Файл [appname].runtimeconfig.json будет перезаписан при последующих сборках.
- Если ваш
OutputType
приложения неExe
и вы хотите, чтобы параметры конфигурации были скопированы из runtimeconfig.template.json в [имя_приложения].runtimeconfig.json, необходимо явно задатьGenerateRuntimeConfigurationFiles
в проектном файле наtrue
. Для приложений, которым требуется файлruntimeconfig.json, это свойство по умолчанию устанавливается какtrue
.
Укажите параметры конфигурации среды выполнения в разделе configProperties файла runtimeconfig.json или runtimeconfig.template.json . В этом разделе есть форма:
"configProperties": {
"config-property-name1": "config-value1",
"config-property-name2": "config-value2"
}
Пример [имя_приложения].runtimeconfig.json файла
Если вы помещаете параметры в выходной JSON-файл, их следует вложить под runtimeOptions
свойство.
{
"runtimeOptions": {
"tfm": "net8.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
"configProperties": {
"System.Globalization.UseNls": true,
"System.Net.DisableIPv6": true,
"System.GC.Concurrent": false,
"System.Threading.ThreadPool.MinThreads": 4,
"System.Threading.ThreadPool.MaxThreads": 25
}
}
}
Пример файла runtimeconfig.template.json
Если вы помещаете параметры в JSON-файл шаблона, исключитеruntimeOptions
свойство.
{
"configProperties": {
"System.Globalization.UseNls": true,
"System.Net.DisableIPv6": true,
"System.GC.Concurrent": false,
"System.Threading.ThreadPool.MinThreads": "4",
"System.Threading.ThreadPool.MaxThreads": "25"
}
}
Свойства MSBuild
Некоторые параметры конфигурации среды выполнения можно задать с помощью свойств MSBuild в файле .csproj или .vbproj проектов .NET в стиле SDK. Свойства MSBuild имеют приоритет над параметрами, заданными в файлеruntimeconfig.template.json .
Для параметров конфигурации среды выполнения, которые не имеют определенного свойства MSBuild, вместо этого можно использовать RuntimeHostConfigurationOption
элемент MSBuild.
Используйте имя параметра runtimeconfig.json в качестве значения атрибутаInclude
.
Ниже приведен пример файла проекта в стиле SDK со свойствами MSBuild для настройки поведения среды выполнения .NET:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<PropertyGroup>
<ConcurrentGarbageCollection>false</ConcurrentGarbageCollection>
<ThreadPoolMinThreads>4</ThreadPoolMinThreads>
<ThreadPoolMaxThreads>25</ThreadPoolMaxThreads>
</PropertyGroup>
<ItemGroup>
<RuntimeHostConfigurationOption Include="System.Globalization.UseNls" Value="true" />
<RuntimeHostConfigurationOption Include="System.Net.DisableIPv6" Value="true" />
</ItemGroup>
</Project>
Свойства MSBuild для настройки поведения среды выполнения отмечаются в отдельных статьях для каждой области, например сборка мусора. Они также перечислены в разделе конфигурации среды выполнения справочника по свойствам MSBuild для проектов в стиле SDK.
Переменные среды
Переменные среды можно использовать для предоставления некоторых сведений о конфигурации среды выполнения. Ручки конфигурации, указанные в качестве переменных среды, обычно имеют префикс DOTNET_.
Замечание
.NET 6 стандартизует префикс DOTNET_
вместо COMPlus_
для переменных среды, которые настраивают поведение .NET во время выполнения. Но префикс COMPlus_
будет и дальше работать. Если вы используете предыдущую версию среды выполнения .NET, необходимо по-прежнему использовать префикс COMPlus_
для переменных среды.
Переменные среды можно определить на панели управления Windows, в командной строке или программно, вызвав Environment.SetEnvironmentVariable(String, String) метод как в системах Windows, так и в Unix.
В следующих примерах показано, как задать переменную среды в командной строке:
# Windows
set DOTNET_GCRetainVM=1
# Powershell
$env:DOTNET_GCRetainVM="1"
# Unix
export DOTNET_GCRetainVM=1