Compartir vía


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 en 0, se deshabilita la compatibilidad con HTTP/2, que está habilitada de forma predeterminada.
  • DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT
    • Cuando se establece en true o en 1, se habilita la compatibilidad con HTTP/3, que está deshabilitada de forma predeterminada.
  • DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING
    • Cuando se establece en false o en 0, invalida el valor predeterminado y deshabilita el algoritmo de escalado dinámico de ventanas HTTP/2.
  • 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:

  1. El archivo del proyecto:

    <PropertyGroup>
        <InvariantGlobalization>true</InvariantGlobalization>
    </PropertyGroup>
    
  2. En el archivo runtimeconfig.json:

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Globalization.Invariant": true
            }
        }
    }
    
  3. Estableciendo el valor de la variable entorno DOTNET_SYSTEM_GLOBALIZATION_INVARIANT en true o en 1.

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:

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_DEFAULTACTIVITYIDFORMATISHIERARCHIAL: cuando es 1 o true, 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 en true.

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 en 1, 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 en 1, 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:

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 la PATH 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.

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, 0o 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 en true.
  • DOTNET_CLI_CONTEXT_ANSI_PASS_THRU: para habilitar un paso a través ANSI, establézcala en true.

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 es 0 (el seguimiento está deshabilitado). Si se establece en 1, se habilita el seguimiento de diagnósticos.

  • COREHOST_TRACEFILE=<file path> : solo tiene efecto si el seguimiento se ha habilitado estableciendo COREHOST_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 en stderr.

  • COREHOST_TRACE_VERBOSITY=[1/2/3/4]: el valor predeterminado es 4. La configuración solo se usa cuando el seguimiento está habilitado a través de COREHOST_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.

Consulte también