Variables de entorno de .NET
Este artículo se aplica a: ✔️ SDK de .NET Core 3.1 y versiones posteriores
En este artículo veremos las variables de entorno que usa .NET. Algunas variables de entorno las usa el runtime de .NET; otras las usan exclusivamente el SDK de .NET y la CLI de .NET, y otras las usan todos ellos.
Variables de entorno del runtime de .NET
DOTNET_SYSTEM_NET_HTTP_*
Hay varias configuraciones de variables de entorno HTTP globales:
DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION
- Indica si debe habilitarse o no la propagación de actividad del controlador de diagnóstico para la configuración HTTP global.
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT
- Cuando se establece en
false
o en0
, se deshabilita la compatibilidad con HTTP/2, que está habilitada de forma predeterminada.
- Cuando se establece en
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT
- Cuando se establece en
true
o en1
, se habilita la compatibilidad con HTTP/3, que está deshabilitada de forma predeterminada.
- Cuando se establece en
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING
- Cuando se establece en
false
o en0
, invalida el valor predeterminado y deshabilita el algoritmo de escalado dinámico de ventanas HTTP/2.
- Cuando se establece en
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE
- El valor predeterminado es 16 MB. Cuando se invalida, el tamaño máximo de la ventana de recepción de la secuencia HTTP/2 no puede ser inferior a 65 535.
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER
- Su valor predeterminado es 1.0. Cuando se invalida, los valores más altos dan como resultado una ventana más corta, pero descargas más lentas. No puede ser inferior a 0.
DOTNET_SYSTEM_GLOBALIZATION_*
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT
: vea Establecimiento del modo invariable.DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY
: especifica si se deben cargar solo las referencias culturales predefinidas.DOTNET_SYSTEM_GLOBALIZATION_APPLOCALICU
: indica si se deben usar los componentes internacionales de Unicode (ICU) locales de la aplicación. Para obtener más información, vea ICU local de la aplicación.
Establecimiento del modo invariable
Las aplicaciones pueden habilitar el modo invariable de cualquiera de estas maneras:
El archivo del proyecto:
<PropertyGroup> <InvariantGlobalization>true</InvariantGlobalization> </PropertyGroup>
En el archivo runtimeconfig.json:
{ "runtimeOptions": { "configProperties": { "System.Globalization.Invariant": true } } }
Estableciendo el valor de la variable entorno
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT
entrue
o en1
.
Importante
Un valor establecido en el archivo de proyecto o en runtimeconfig.json tiene mayor prioridad que la variable de entorno.
Para obtener más información, vea Modo invariable de globalización de .NET.
DOTNET_SYSTEM_GLOBALIZATION_USENLS
Esto es aplicable solo a Windows. Para que la globalización use la compatibilidad con el idioma nacional (NLS), establezca DOTNET_SYSTEM_GLOBALIZATION_USENLS
en true
o en 1
. Para que no la use, establezca DOTNET_SYSTEM_GLOBALIZATION_USENLS
en false
o en 0
.
DOTNET_SYSTEM_NET_SOCKETS_*
Esta sección se centra en dos variables de entorno System.Net.Sockets
:
DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT
Las continuaciones de socket se envían a System.Threading.ThreadPool desde el subproceso de eventos. Así se evita que las continuaciones bloqueen el control de eventos. Para permitir que las continuaciones se ejecuten directamente en el subproceso de eventos, establezca DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
en 1
. De forma predeterminada, está deshabilitada.
Nota
Esta configuración puede hacer que el rendimiento empeore si hay un trabajo costoso que terminará prolongando la espera del subproceso de E/S más tiempo del debido. Compruébelo para asegurarse de que esta configuración beneficia al rendimiento.
Con los puntos de referencia de TechEmpower, que generan una gran cantidad de lecturas y escrituras de sockets pequeños bajo una carga muy elevada, un único motor de sockets es capaz de mantener ocupados hasta treinta núcleos de CPU x64 y ocho ARM64. En la inmensa mayoría de los escenarios reales nunca se generará una carga tan grande (cientos de miles de solicitudes por segundo) y tener un único productor suele ser suficiente casi siempre. Pese a ello, si quiere asegurarse de que las cargas extremas pueden controlarse, puede usar DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT
para invalidar el valor calculado. Cuando no se invalida, se usa el siguiente valor:
- Cuando
DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
es1
, se usa el valor Environment.ProcessorCount. - Cuando
DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
no es1
, se evalúa RuntimeInformation.ProcessArchitecture:- En ARM o ARM64, el valor de núcleos por motor se establece en
8
; si no, en30
.
- En ARM o ARM64, el valor de núcleos por motor se establece en
- Con los núcleos por motor especificados, el valor máximo de
1
o Environment.ProcessorCount frente a los núcleos por motor.
DOTNET_SYSTEM_NET_DISABLEIPV6
Ayuda a determinar si la versión 6 del protocolo de Internet (IPv6) está deshabilitada o no. Cuando se establece en true
o en 1
, IPv6 está deshabilitado, a menos que se especifique lo contrario en System.AppContext.
DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER
Puede usar uno de los mecanismos siguientes para configurar un proceso que use el HttpClientHandler
anterior:
En el código, use la clase AppContext
:
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
El modificador AppContext
también se puede establecer mediante un archivo de configuración. Para obtener más información sobre la configuración de modificadores, vea AppContext para consumidores de biblioteca.
Se puede lograr lo mismo a través de la variable de entorno DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER
. Para no participar, establezca el valor en false
o en 0
.
Nota
A partir de .NET 5, esta configuración para usar HttpClientHandler ya no está disponible.
DOTNET_Jit*
y DOTNET_GC*
Existen dos características de esfuerzo relativas a la información de GC de JIT y generada por JIT: JIT Stress y GC Hole Stress. Estas características proporcionan una manera de detectar casos perimetrales y escenarios más "reales" durante el desarrollo sin tener que desarrollar aplicaciones complejas. Están disponibles las siguientes variables de entorno:
DOTNET_JitStress
DOTNET_JitStressModeNamesOnly
DOTNET_GCStress
JIT Stress
JIT Stress se puede habilitar de varias maneras. Establezca DOTNET_JitStress
en un valor entero distinto de cero para generar distintos niveles de optimizaciones de JIT en función de un código hash del nombre del método. Para aplicar todas las optimizaciones, establezca DOTNET_JitStress=2
, por ejemplo. Otra forma de habilitar JIT Stress consiste en establecer DOTNET_JitStressModeNamesOnly=1
y, luego, solicitar los modos de esfuerzo, con delimitación de espacio, en la variable DOTNET_JitStressModeNames
.
Por ejemplo, considere lo siguiente:
DOTNET_JitStressModeNames=STRESS_USE_CMOV STRESS_64RSLT_MUL STRESS_LCL_FLDS
GC Hole Stress
Cuando GC Hole Stress se habilita, hace que los GC siempre se produzcan en ubicaciones específicas, lo que ayuda a llevar un seguimiento de los huecos de GC. GC Hole Stress se puede habilitar mediante la variable de entorno DOTNET_GCStress
.
Para obtener más información, vea Investigación de JIT y GC Hole Stress.
Barreras de memoria de JIT
El generador de código de ARM64 permite quitar todas las instrucciones MemoryBarriers
estableciendo DOTNET_JitNoMemoryBarriers
en 1
.
DOTNET_RUNNING_IN_CONTAINER
y DOTNET_RUNNING_IN_CONTAINERS
Las imágenes de .NET oficiales (Windows y Linux) establecen las variables de entorno conocidas:
DOTNET_RUNNING_IN_CONTAINER
DOTNET_RUNNING_IN_CONTAINERS
Estos valores se usan para determinar cuándo se ejecutan las cargas de trabajo de ASP.NET Core en el contexto de un contenedor.
DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION
Cuando Console.IsOutputRedirected es true
, se puede emitir código de color de ANSI estableciendo DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION
en 1
o en true
.
DOTNET_SYSTEM_DIAGNOSTICS
y variables relacionadas
DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL
: cuando es1
otrue
, el formato de Id. de actividad predeterminado es jerárquico.DOTNET_SYSTEM_RUNTIME_CACHING_TRACING
: cuando se ejecuta en el modo de depuración, se puede habilitar el seguimiento si está establecido entrue
.
DOTNET_DiagnosticPorts
Configura puntos de conexión alternativos en los que las herramientas de diagnóstico pueden comunicarse con el entorno de ejecución de .NET. Consulte la documentación del puerto de diagnóstico para más información.
DOTNET_DefaultDiagnosticPortSuspend
Configura el entorno de ejecución para que se pause durante el inicio y espere el comando Diagnostics IPC ResumeStartup del puerto de diagnóstico especificado cuando se establece en 1. El valor predeterminado es 0. Consulte la documentación del puerto de diagnóstico para más información.
DOTNET_EnableDiagnostics
Cuando se establece en 0
, deshabilita la depuración, la generación de perfiles y otros diagnósticos a través del Puerto de diagnóstico y no se puede invalidar mediante otras configuraciones de diagnóstico. Tiene como valor predeterminado 1
.
DOTNET_EnableDiagnostics_IPC
A partir de .NET 8, cuando se establece en 0
, deshabilita el Puerto de diagnóstico y no se puede invalidar mediante otras configuraciones de diagnóstico. Tiene como valor predeterminado 1
.
DOTNET_EnableDiagnostics_Debugger
A partir de .NET 8, cuando se establece en 0
, deshabilita la depuración y no se puede invalidar mediante otras configuraciones de diagnóstico. Tiene como valor predeterminado 1
.
DOTNET_EnableDiagnostics_Profiler
A partir de .NET 8, cuando se establece en 0
, deshabilita la creación de perfiles y no se puede invalidar mediante otras configuraciones de diagnóstico. Tiene como valor predeterminado 1
.
Variables EventPipe
Consulte Variables de entorno EventPipe para más información.
DOTNET_EnableEventPipe
: cuando se establece en1
, habilita el seguimiento a través de EventPipe.DOTNET_EventPipeOutputPath
: ruta de acceso de salida donde se escribirá el seguimiento.DOTNET_EventPipeOutputStreaming
: cuando se establece en1
, permite la transmisión al archivo de salida mientras se ejecuta la aplicación. De forma predeterminada, la información de seguimiento se acumula en un búfer circular y el contenido se escribe al apagar la aplicación.
Variables de entorno de SDK de .NET y de la CLI
DOTNET_ROOT
, DOTNET_ROOT(x86)
, , DOTNET_ROOT_X86
, DOTNET_ROOT_X64
Especifica la ubicación de los entornos de ejecución de .NET, si no están instalados en la ubicación predeterminada. La ubicación predeterminada en Windows es C:\Program Files\dotnet
. La ubicación predeterminada en macOS es /usr/local/share/dotnet
. La ubicación predeterminada para los entornos de ejecución x64 en un sistema operativo arm64 se encuentra en una subcarpeta x64 (así que C:\Program Files\dotnet\x64
en windows y /usr/local/share/dotnet/x64
en macOS. La ubicación predeterminada en Linux varía en función del método de distribución y entrega. La ubicación predeterminada en Ubuntu 22.04 es /usr/share/dotnet
(cuando se instala desde packages.microsoft.com
) o /usr/lib/dotnet
(cuando se instala desde la fuente Jammy). Para obtener más información, consulte los siguientes recursos:
- Solución de problemas de inicio de las aplicaciones
- Problema de GitHub dotnet/core#7699
- Problema de GitHub dotnet/runtime#79237
Esta variable de entorno solo se usa cuando se ejecutan aplicaciones a través de archivos ejecutables generados (hosts de aplicaciones). DOTNET_ROOT(x86)
se usa en su lugar cuando se ejecuta un archivo ejecutable de 32 bits en un sistema operativo de 64 bits. DOTNET_ROOT_X64
se usa en su lugar cuando se ejecuta un ejecutable de 64 bits en un sistema operativo ARM64.
DOTNET_HOST_PATH
Especifica la ruta de acceso absoluta a un host de dotnet
(dotnet.exe
en Windows, dotnet
en Linux y macOS) que se usó para iniciar el proceso de dotnet
en ejecución actualmente. El SDK de .NET lo usa para ayudar a las herramientas que se ejecutan durante los comandos del SDK de .NET a garantizar que usan el mismo entorno de ejecución de dotnet
para los procesos secundarios dotnet
que crean durante la duración del comando. Se espera que las herramientas y las tareas de MSBuild dentro del SDK que invoquen archivos binarios a través del host de dotnet
respeten esta variable de entorno para garantizar una experiencia coherente.
Las herramientas que invocan dotnet
durante un comando del SDK deben usar el siguiente algoritmo para localizarlo:
- Si se establece
DOTNET_HOST_PATH
, use ese valor directamente; - de lo contrario, confíe en
dotnet
a través de laPATH
del sistema
Nota
DOTNET_HOST_PATH
no es una solución general para localizar el host de dotnet
. Solo está pensado para que lo utilicen las herramientas invocadas por el SDK de .NET.
DOTNET_LAUNCH_PROFILE
El comando dotnet run establece esta variable en el perfil de inicio seleccionado.
Dado el siguiente archivo launchSettings.json:
{
"profiles": {
"First": {
"commandName": "Project",
},
"Second": {
"commandName": "Project",
}
}
}
Y el siguiente archivo Program.cs:
var value = Environment.GetEnvironmentVariable("DOTNET_LAUNCH_PROFILE");
Console.WriteLine($"DOTNET_LAUNCH_PROFILE={value}");
Los escenarios siguientes generan la salida que se muestra:
Perfil de inicio especificado y existente
$ dotnet run --launch-profile First DOTNET_LAUNCH_PROFILE=First
Perfil de inicio no especificado, primero seleccionado
$ dotnet run DOTNET_LAUNCH_PROFILE=First
Perfil de inicio especificado, pero inexistente
$ dotnet run --launch-profile Third The launch profile "Third" could not be applied. A launch profile with the name 'Third' doesn't exist. DOTNET_LAUNCH_PROFILE=
Iniciar sin perfil
$ dotnet run --no-launch-profile DOTNET_LAUNCH_PROFILE=
NUGET_PACKAGES
La carpeta de paquetes globales. Si no se establece, el valor predeterminado es ~/.nuget/packages
en Unix o %userprofile%\.nuget\packages
en Windows.
DOTNET_SERVICING
Especifica la ubicación del índice de mantenimiento que usará el host compartido al cargar el entorno de tiempo de ejecución.
DOTNET_NOLOGO
Especifica si los mensajes de bienvenida y telemetría de .NET se muestran en la primera ejecución. Establézcala en true
para silenciar estos mensajes (valores true
, 1
o yes
aceptados) o en false
para permitirlos (valores false
, 0
o no
aceptados). Si no se establece, el valor predeterminado es false
y los mensajes se mostrarán en la primera ejecución. Esta marca no tiene ningún efecto en la telemetría (vea DOTNET_CLI_TELEMETRY_OPTOUT
para excluirse del envío de telemetría).
DOTNET_CLI_PERF_LOG
Especifica si se registran detalles del rendimiento de la sesión actual de la CLI. Se habilita cuando se establece en 1
, true
o yes
. Esta opción está deshabilitada de manera predeterminada.
DOTNET_GENERATE_ASPNET_CERTIFICATE
Especifica si se va a generar un certificado ASP.NET Core. El valor predeterminado es true
, pero se puede invalidar estableciendo esta variable de entorno en 0
, false
o no
.
DOTNET_ADD_GLOBAL_TOOLS_TO_PATH
Especifica si se deben agregar herramientas globales a la variable de entorno PATH
. El valor predeterminado es true
. Para no agregar herramientas globales a la ruta de acceso, establézcala en 0
, false
o no
.
DOTNET_CLI_TELEMETRY_OPTOUT
Especifica si se recopilan datos sobre el uso de herramientas de .NET y se envían a Microsoft. Establézcalo en true
para no participar de la característica de la telemetría (se aceptan los valores true
, 1
o yes
). De lo contrario, establezca en false
para participar en las características de telemetría (valores false
, 0
o no
aceptados). Si no se establece, el valor predeterminado es false
, y la característica de telemetría está activa.
DOTNET_SKIP_FIRST_TIME_EXPERIENCE
Si DOTNET_SKIP_FIRST_TIME_EXPERIENCE
se establece en true
, NuGetFallbackFolder
no se expandirá al disco y se mostrará un mensaje de bienvenida y un aviso de telemetría más cortos.
Nota:
Esta variable de entorno ya no se admite en .NET Core 3.0 y versiones posteriores.
Use DOTNET_NOLOGO
como reemplazo.
DOTNET_MULTILEVEL_LOOKUP
Especifica si desde la ubicación global se resuelve el entorno de ejecución, el marco compartido o el SDK de .NET. Si no se define, establece el valor predeterminado de 1 (true
lógico). Establezca el valor en 0 (false
lógico) para no resolverlo desde la ubicación global y tener instalaciones de .NET aisladas. Para más información sobre las búsquedas de varios niveles, vea Multi-level SharedFX Lookup (Búsqueda SharedFX de varios niveles).
Nota
Esta variable de entorno solo se aplica a las aplicaciones destinadas a .NET 6 y versiones anteriores. A partir de .NET 7, .NET solo busca marcos en una ubicación. Para más información, consulte Búsqueda de varios niveles deshabilitada.
DOTNET_ROLL_FORWARD
Determina el comportamiento de puesta al día. Para obtener más información, consulte la opción --roll-forward
para el comando dotnet
.
DOTNET_ROLL_FORWARD_TO_PRERELEASE
Si se establece en 1
(habilitado), permite la puesta al día a una versión preliminar desde una versión de lanzamiento. De forma predeterminada (0
: deshabilitado), cuando se solicita una versión de lanzamiento del entorno de ejecución de .NET, la puesta al día solo tendrá en cuenta las versiones de lanzamiento instaladas.
Para obtener más información, consulte la opción --roll-forward
para el comando dotnet
DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX
Deshabilita la puesta al día de versiones secundarias, si está establecido en 0
. Este valor se ha sustituido en .NET Core 3.0 por DOTNET_ROLL_FORWARD
, y esta es la configuración que debe usarse.
DOTNET_CLI_FORCE_UTF8_ENCODING
Fuerza el uso de codificación UTF-8 en la consola, incluso para versiones anteriores de Windows 10 que no son plenamente compatibles con UTF-8. Para obtener más información, consulte El SDK ya no cambia la codificación de la consola al finalizar.
DOTNET_CLI_UI_LANGUAGE
Establece el idioma de la interfaz de usuario de la CLI mediante un valor de configuración regional como en-us
. Los valores admitidos son los mismos que en Visual Studio. Para obtener más información, vea la sección sobre cómo cambiar el idioma del instalador en la documentación de instalación de Visual Studio. Se aplican las reglas del administrador de recursos de .NET, por lo que no hay que elegir una coincidencia exacta (también se pueden elegir descendientes en el árbol CultureInfo
). Por ejemplo, si se establece en fr-CA
, la CLI buscará y usará las traducciones de fr
. Si se establece en un idioma que no se admite, la CLI revertirá al inglés.
DOTNET_DISABLE_GUI_ERRORS
En el caso de los archivos ejecutables generados habilitados para GUI, se deshabilita el cuadro de diálogo emergente que suele aparecer con ciertos tipos de errores. Solo escribe en stderr
y se cierra en esos casos.
DOTNET_ADDITIONAL_DEPS
Equivale a la opción --additional-deps
de la CLI.
DOTNET_RUNTIME_ID
Invalida el RID detectado.
DOTNET_SHARED_STORE
Ubicación del "almacén compartido" a la que la resolución de ensamblado revierte en algunos casos.
DOTNET_STARTUP_HOOKS
Lista de ensamblados de los que cargar y ejecutar enlaces de inicio.
DOTNET_BUNDLE_EXTRACT_BASE_DIR
Especifica un directorio en el que se extrae una aplicación de un solo archivo antes de ejecutarse.
Para más información, consulte Archivos ejecutables de único archivo.
DOTNET_CLI_HOME
Especifica la ubicación en la que se deben escribir los archivos auxiliares para los comandos de la CLI de .NET. Por ejemplo:
- Rutas de acceso grabables de usuario para paquetes de cargas de trabajo, manifiestos y otros datos auxiliares.
- Ejecute primero los archivos sentinel/lock para aspectos de las experiencias de notificaciones y migraciones de primera ejecución de la CLI de .NET.
- Ubicación de instalación predeterminada de la herramienta local de .NET.
DOTNET_CLI_CONTEXT_*
DOTNET_CLI_CONTEXT_VERBOSE
: para habilitar un contexto detallado, establézcala entrue
.DOTNET_CLI_CONTEXT_ANSI_PASS_THRU
: para habilitar un paso a través ANSI, establézcala entrue
.
DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE
Deshabilita la descarga en segundo plano de manifiestos de publicidad de cargas de trabajo. El valor predeterminado es false
: no deshabilitado. Si se establece en true
, la descarga se deshabilita. Para obtener más información, vea Manifiestos de publicidad.
DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_INTERVAL_HOURS
Especifica el número mínimo de horas entre descargas en segundo plano de manifiestos de publicidad de cargas de trabajo. El valor predeterminado es 24
: no más de una vez al día. Para obtener más información, vea Manifiestos de publicidad.
DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
Especifica si las herramientas locales del SDK de .NET buscan archivos de manifiesto de herramientas en la carpeta raíz de Windows. De manera predeterminada, es false
.
COREHOST_TRACE
Controla el seguimiento de diagnósticos de los componentes de hospedaje, como dotnet.exe
, hostfxr
y hostpolicy
.
COREHOST_TRACE=[0/1]
: el valor predeterminado es0
(el seguimiento está deshabilitado). Si se establece en1
, se habilita el seguimiento de diagnósticos.COREHOST_TRACEFILE=<file path>
: solo tiene efecto si el seguimiento se ha habilitado estableciendoCOREHOST_TRACE=1
. Cuando se establece, la información de seguimiento se escribe en el archivo especificado; en caso contrario, la información de seguimiento se escribe enstderr
.COREHOST_TRACE_VERBOSITY=[1/2/3/4]
: el valor predeterminado es4
. La configuración solo se usa cuando el seguimiento está habilitado a través deCOREHOST_TRACE=1
.4
: se escribe toda la información de seguimiento.3
: solo se escriben mensajes informativos, de advertencia y de error.2
: solo se escriben mensajes de advertencia y de error.1
: solo se escriben mensajes de error.
La forma habitual de obtener información de seguimiento detallada sobre el inicio de la aplicación es establecer COREHOST_TRACE=1
y COREHOST_TRACEFILE=host_trace.txt
y luego ejecutar la aplicación. Se creará un nuevo archivo host_trace.txt
en el directorio actual con la información detallada.
SuppressNETCoreSdkPreviewMessage
Si se establece en true
, la invocación de dotnet
no producirá una advertencia cuando se usa un SDK en versión preliminar.
Configuración de MSBuild en la CLI de .NET
Para ejecutar MSBuild fuera del proceso, establezca la variable de entorno DOTNET_CLI_RUN_MSBUILD_OUTOFPROC
en 1
, true
o yes
. MSBuild se ejecutará dentro del proceso de forma predeterminada. Para forzar a MSBuild a usar un proceso de larga duración de nodo de trabajo externo para compilar proyectos, establezca DOTNET_CLI_USE_MSBUILDNOINPROCNODE
en 1
, true
o yes
. Esto establecerá la variable de entorno MSBUILDNOINPROCNODE
en 1
(lo que se conoce como MSBuild Server V1, ya que el proceso de entrada reenvía la mayor parte del trabajo.
DOTNET_MSBUILD_SDK_RESOLVER_*
Estas invalidaciones se usan para forzar que los destinos y las tareas del SDK resueltos procedan de un directorio base determinado y comuniquen una versión determinada a MSBuild, que puede ser null
si no se conoce. Un caso de uso fundamental para esto es comprobar los destinos y tareas del SDK sin implementarlos mediante el SDK de .NET Core.
DOTNET_MSBUILD_SDK_RESOLVER_SDKS_DIR
: invalida el directorio del SDK de .NET.DOTNET_MSBUILD_SDK_RESOLVER_SDKS_VER
: invalida la versión del SDK de .NET.DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR
: invalida la ruta de acceso del directorio de accesodotnet.exe.
DOTNET_NEW_PREFERRED_LANG
Configura el lenguaje de programación predeterminado del comando dotnet new
cuando se omite el modificador -lang|--language
. El valor predeterminado es C#
. Los valores válidos son C#
, F#
o VB
. Para más información, vea dotnet new.
Variables de entorno dotnet watch
Para información sobre la configuración dotnet watch
que está disponible como variables de entorno, consulte Variables de entorno de dotnet watch.