Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
.NET proporciona los siguientes mecanismos para configurar el comportamiento del entorno de ejecución de .NET:
Mecanismo | Notas |
---|---|
El archivo runtimeconfig.json | Aplica la configuración a una aplicación específica. Usa este archivo si varias instancias de la aplicación se ejecutan al mismo tiempo en un único sistema y quieres configurar cada una para obtener un rendimiento óptimo. |
Propiedades de MSBuild | Aplica la configuración a una aplicación específica. Las propiedades de MSBuild tienen prioridad sobre la configuración en runtimeconfig.json. |
Variables de entorno | Aplica la configuración a todas las aplicaciones .NET. |
Algunos valores de configuración también se pueden establecer mediante programación llamando al AppContext.SetSwitch método .
Nota:
Los artículos de esta sección se refieren a la configuración del propio entorno de ejecución de .NET. Si va a migrar una aplicación de .NET Framework a .NET y busca un reemplazo para el archivo app.config, consulte Modernización después de actualizar a .NET. Para obtener información sobre cómo proporcionar valores de configuración personalizados a aplicaciones .NET, vea Configuración en .NET.
Los artículos de esta sección de la documentación se organizan por categoría, por ejemplo, depuración y recolección de basura. Si procede, se muestran opciones de configuración para archivos deruntimeconfig.json , propiedades de MSBuild, variables de entorno y, para referencia cruzada, app.config archivos para proyectos de .NET Framework.
runtimeconfig.json
Cuando se compila un proyecto, se genera un archivo [appname].runtimeconfig.json en el directorio de salida. Si existe un archivo runtimeconfig.template.json en la misma carpeta que el archivo del proyecto, las opciones de configuración que contiene se insertan en el archivo [appname].runtimeconfig.json . Si va a compilar la aplicación usted mismo, coloque las opciones de configuración en el archivo runtimeconfig.template.json . Si acabas de ejecutar la aplicación, insértelas directamente en el archivo [appname].runtimeconfig.json .
Nota:
- El archivo [appname].runtimeconfig.json se sobrescribirá en compilaciones posteriores.
- Si la
OutputType
de su aplicación no estáExe
y desea que las opciones de configuración se copien de runtimeconfig.template.json a [appname].runtimeconfig.json, debe establecerGenerateRuntimeConfigurationFiles
atrue
explícitamente en el archivo del proyecto. En el caso de las aplicaciones que requieren un archivo runtimeconfig.json , esta propiedad tienetrue
como valor predeterminado .
Especifique las opciones de configuración en tiempo de ejecución en la sección configProperties del archivoruntimeconfig.json o runtimeconfig.template.json . Esta sección tiene el formato :
"configProperties": {
"config-property-name1": "config-value1",
"config-property-name2": "config-value2"
}
Archivo de ejemplo [nombre_aplicación].runtimeconfig.json
Si va a colocar las opciones en el archivo JSON de salida, encapsúlelas bajo la propiedad 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
}
}
}
Archivo runtimeconfig.template.json de ejemplo
Si va a colocar las opciones en el archivo JSON de plantilla, omita la propiedad runtimeOptions
.
{
"configProperties": {
"System.Globalization.UseNls": true,
"System.Net.DisableIPv6": true,
"System.GC.Concurrent": false,
"System.Threading.ThreadPool.MinThreads": "4",
"System.Threading.ThreadPool.MaxThreads": "25"
}
}
Propiedades de MSBuild
Algunas opciones de configuración en tiempo de ejecución se pueden establecer mediante propiedades de MSBuild en el archivo .csproj o .vbproj de proyectos .NET de estilo SDK. Las propiedades de MSBuild tienen prioridad sobre las opciones establecidas en el archivo runtimeconfig.template.json .
En el caso de las opciones de configuración en tiempo de ejecución que no tienen una propiedad específica de MSBuild, puede usar el RuntimeHostConfigurationOption
elemento de MSBuild en su lugar. Use el nombre de la configuración runtimeconfig.json como valor del atributo Include
.
Este es un archivo de proyecto de estilo SDK de ejemplo con propiedades de MSBuild para configurar el comportamiento del entorno de ejecución de .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>
Las propiedades de MSBuild para configurar el comportamiento del entorno de ejecución se indican en los artículos individuales de cada área, por ejemplo, la recolección de elementos no utilizados. También se muestran en la sección Configuración en tiempo de ejecución de la referencia de propiedades de MSBuild para proyectos de estilo SDK.
Variables de entorno
Las variables de entorno se pueden usar para proporcionar información de configuración en tiempo de ejecución. Los botones de configuración especificados como variables de entorno suelen tener el prefijo DOTNET_.
Nota:
.NET 6 normaliza el prefijo DOTNET_
en lugar de COMPlus_
para las variables de entorno que configuran el comportamiento en tiempo de ejecución de .NET. Sin embargo, el prefijo COMPlus_
seguirá funcionando. Si usa una versión anterior del entorno de ejecución de .NET, debe seguir usando el prefijo COMPlus_
para las variables de entorno.
Puede definir variables de entorno desde el Panel de control de Windows, en la línea de comandos o mediante programación llamando al Environment.SetEnvironmentVariable(String, String) método en sistemas basados en Windows y Unix.
En los ejemplos siguientes se muestra cómo establecer una variable de entorno en la línea de comandos:
# Windows
set DOTNET_GCRetainVM=1
# Powershell
$env:DOTNET_GCRetainVM="1"
# Unix
export DOTNET_GCRetainVM=1