Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O .NET fornece os seguintes mecanismos para configurar o comportamento do tempo de execução do .NET:
Mecanismo | Observações |
---|---|
O arquivoruntimeconfig.json | Aplica a configuração a um aplicativo específico. Use esse arquivo se várias instâncias do seu aplicativo forem executadas ao mesmo tempo em um único sistema e você quiser configurar cada uma delas para obter o melhor desempenho. |
propriedades do MSBuild | Aplica a configuração a um aplicativo específico. As propriedades do MSBuild têm precedência sobre as configurações no 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 tempo de execução do .NET. Se você estiver migrando um aplicativo do .NET Framework para o .NET e estiver procurando um substituto para o arquivo app.config, consulte Modernizar após atualizar 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. Onde aplicável, as opções de configuração são apresentadas para os arquivos runtimeconfig.json, propriedades do MSBuild, variáveis de ambiente e arquivos app.config para projetos do .NET Framework.
runtimeconfig.json
Quando um projeto é criado, um arquivo de.runtimeconfig.json[appname] é gerado no diretório de saída. Se existir um arquivo runtimeconfig.template.json na mesma pasta que o arquivo de projeto, todas as opções de configuração que ele contém são inseridas no arquivo de.runtimeconfig.json[appname]. Se você estiver criando o aplicativo por conta própria, coloque todas as opções de configuração no arquivo runtimeconfig.template.json . Se estiver apenas a executar a aplicação, insira-os diretamente no ficheiro [appname].runtimeconfig.json.
Observação
- O arquivo de.runtimeconfig.json[appname] será substituído em compilações subsequentes.
- Se o
OutputType
do seu aplicativo não estiverExe
e você quiser que as opções de configuração sejam copiadas de runtimeconfig.template.json para [appname].runtimeconfig.json, deve definirGenerateRuntimeConfigurationFiles
explicitamente comotrue
no seu arquivo de projeto. Para aplicações que exigem um arquivo runtimeconfig.json, esta propriedade tem como padrãotrue
.
Especifique as opções de configuração de tempo de execução na seção configProperties do arquivo runtimeconfig.json ou runtimeconfig.template.json . Esta secção tem a forma:
"configProperties": {
"config-property-name1": "config-value1",
"config-property-name2": "config-value2"
}
Exemplo [appname] arquivo.runtimeconfig.json
Se você estiver colocando as opções no arquivo JSON de saída , aninha-as sob a runtimeOptions
propriedade.
{
"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 de arquivo runtimeconfig.template.json
Se estiver a colocar as opções no ficheiro JSON do 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 tempo de execução podem ser definidas usando propriedades 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 definições de configuração de tempo de execução que não têm uma propriedade MSBuild específica, você pode usar o RuntimeHostConfigurationOption
item MSBuild em vez disso. Use o nome da configuração runtimeconfig.json como o valor do Include
atributo.
Aqui está um exemplo de arquivo de projeto no estilo SDK com propriedades MSBuild para configurar o comportamento do tempo de execução 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 tempo de execução são anotadas nos artigos individuais de cada área, por exemplo, coleta de lixo. Eles também estão listados na seção Configuração de tempo de execução da referência de propriedades do 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 tempo de execução. Os botões de configuração especificados como variáveis de ambiente geralmente têm o prefixo DOTNET_.
Observação
O .NET 6 padroniza o uso do prefixo DOTNET_
em vez de COMPlus_
para variáveis de ambiente que configuram o comportamento do tempo de execução do .NET. No entanto, o prefixo COMPlus_
continuará a funcionar. Se você estiver usando uma versão anterior do tempo de execução do .NET, ainda deverá usar o prefixo COMPlus_
para variáveis de ambiente.
Você pode definir variáveis de ambiente a partir 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