Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O .NET fornece os seguintes mecanismos para configurar o comportamento do runtime do .NET:
| Mecanismo | Anotações |
|---|---|
| O arquivoruntimeconfig.json | Aplica a configuração a um aplicativo específico. Use esse arquivo se várias instâncias do aplicativo forem executadas ao mesmo tempo em um único sistema e quiser configurar cada uma para um desempenho ideal. |
| Propriedades do MSBuild | Aplica a configuração a um aplicativo específico. As propriedades do MSBuild têm precedência sobre as configurações em runtimeconfig.json. |
| Variáveis de ambiente | Aplica a configuração a todos os aplicativos .NET. |
Alguns valores de configuração também podem ser definidos programaticamente chamando o AppContext.SetSwitch método.
Observação
Os artigos nesta seção dizem respeito à configuração do próprio runtime do .NET. Se você estiver migrando um aplicativo do .NET Framework para o .NET e estiver procurando uma substituição para o arquivo app.config , consulte Modernizar após a atualização para o .NET. Para obter informações sobre como fornecer valores de configuração personalizados para aplicativos .NET, consulte Configuração no .NET.
Os artigos nesta seção da documentação são organizados por categoria, por exemplo, depuração e coleta de lixo. Quando aplicável, as opções de configuração são mostradas para arquivos runtimeconfig.json , propriedades do MSBuild, variáveis de ambiente e, para referência cruzada, app.config arquivos para projetos do .NET Framework.
runtimeconfig.json
Quando um projeto é criado, um arquivo [appname].runtimeconfig.json é gerado no diretório de saída. Se houver um arquivo runtimeconfig.template.json na mesma pasta que o arquivo de projeto, todas as opções de configuração que ele contiver serão inseridas no arquivo [appname].runtimeconfig.json . Se você estiver criando o aplicativo por conta própria, coloque as opções de configuração no arquivo runtimeconfig.template.json . Se você estiver apenas executando o aplicativo, insira-o diretamente no arquivo [appname].runtimeconfig.json .
Observação
- O arquivo [appname].runtimeconfig.json será substituído em builds subsequentes.
- Se o
OutputTypedo seu aplicativo não forExee você quiser que as opções de configuração sejam copiadas de runtimeconfig.template.json para [appname].runtimeconfig.json, você deve definir explicitamenteGenerateRuntimeConfigurationFilesparatrueno arquivo do seu projeto. Para aplicativos que exigem um arquivo runtimeconfig.json , essa propriedade usa como padrãotrue.
Especifique as opções de configuração de runtime na seção configProperties do arquivo runtimeconfig.json ou runtimeconfig.template.json . Esta seção tem o formulário:
"configProperties": {
"config-property-name1": "config-value1",
"config-property-name2": "config-value2"
}
Exemplo, arquivo [appname].runtimeconfig.json
Se você estiver colocando as opções no arquivo JSON de saída, aninha-as sob a propriedade 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
}
}
}
Exemplo runtimeconfig.template.json arquivo
Se você estiver colocando as opções no arquivo JSON de modelo, omita a propriedade runtimeOptions.
{
"configProperties": {
"System.Globalization.UseNls": true,
"System.Net.DisableIPv6": true,
"System.GC.Concurrent": false,
"System.Threading.ThreadPool.MinThreads": "4",
"System.Threading.ThreadPool.MaxThreads": "25"
}
}
Propriedades do MSBuild
Algumas opções de configuração de runtime podem ser definidas usando as propriedades do MSBuild no arquivo .csproj ou .vbproj de projetos .NET no estilo SDK. As propriedades do MSBuild têm precedência sobre as opções definidas no arquivo runtimeconfig.template.json .
Para configurações de runtime que não têm uma propriedade específica do MSBuild, você pode usar o item MSBuild RuntimeHostConfigurationOption. Use o nome da configuração runtimeconfig.json como o valor do atributo Include.
Aqui está um exemplo de arquivo de projeto no estilo SDK com propriedades do MSBuild para configurar o comportamento do runtime do .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>
As propriedades do MSBuild para configurar o comportamento do runtime são indicadas nos artigos individuais de cada área, por exemplo, coleta de lixo. Também estão listados na seção Configuração do runtime da referência de propriedades MSBuild para projetos no estilo SDK.
Variáveis de ambiente
As variáveis de ambiente podem ser usadas para fornecer algumas informações de configuração de runtime. Botões de configuração especificados como variáveis de ambiente geralmente têm o prefixo DOTNET_. (Para configuração de runtime do .NET Framework, use o COMPlus_ prefixo em vez disso.)
Você pode definir variáveis de ambiente do Painel de Controle do Windows, na linha de comando ou programaticamente chamando o Environment.SetEnvironmentVariable(String, String) método em sistemas baseados em Windows e Unix.
Os exemplos a seguir mostram como definir uma variável de ambiente na linha de comando:
# Windows
set DOTNET_GCRetainVM=1
# Powershell
$env:DOTNET_GCRetainVM="1"
# Unix
export DOTNET_GCRetainVM=1