.NET 환경 변수

이 문서의 적용 대상: ✔️ .NET Core 3.1 SDK 이상 버전

이 문서에서는 .NET에서 사용되는 환경 변수에 대해 알아봅니다. 일부 환경 변수는 .NET 런타임에서 사용되고 다른 변수는 .NET SDK 및 .NET CLI에서만 사용됩니다. 일부 환경 변수는 세 가지 구성 요소 모두에서 사용됩니다.

.NET 런타임 환경 변수

DOTNET_SYSTEM_NET_HTTP_*

몇 가지 전역 HTTP 환경 변수 설정이 있습니다.

  • DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION
    • 전역 HTTP 설정에 대해 진단 처리기의 작업 전파를 사용하도록 설정할지 여부를 나타냅니다.
  • DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT
    • false 또는 0으로 설정하면 HTTP/2 지원을 사용하지 않도록 설정합니다(기본적으로 사용하도록 설정됨).
  • DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT
    • true 또는 1로 설정하면 HTTP/3 지원을 사용하도록 설정합니다(기본적으로 사용하지 않도록 설정됨).
  • DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING
    • false 또는 0으로 설정하면 기본값을 재정의하고 HTTP/2 동적 창 크기 조정 알고리즘을 사용하지 않도록 설정합니다.
  • DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE
    • 기본값은 16MB입니다. 재정의되는 경우 HTTP/2 스트림 수신 기간의 최대 크기가 65535보다 작아야 합니다.
  • DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER
    • 기본값은 1.0입니다. 재정의하는 경우 값이 높을수록 기간이 짧아지지만 다운로드 속도는 느려집니다. 0보다 작을 수 없습니다.

DOTNET_SYSTEM_GLOBALIZATION_*

  • DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 고정 모드 설정을 참조하세요.
  • DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY: 미리 정의된 문화권만 로드할지 여부를 지정합니다.
  • DOTNET_SYSTEM_GLOBALIZATION_APPLOCALICU: 앱 로컬 ICU(International Components of Unicode)를 사용할지 여부를 나타냅니다. 자세한 내용은 앱 로컬 ICU를 참조하세요.

고정 모드 설정

애플리케이션은 다음 방법 중 하나로 고정 모드를 사용하도록 설정할 수 있습니다.

  1. 프로젝트 파일에서:

    <PropertyGroup>
        <InvariantGlobalization>true</InvariantGlobalization>
    </PropertyGroup>
    
  2. runtimeconfig.json 파일에서:

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Globalization.Invariant": true
            }
        }
    }
    
  3. 환경 변수 값 DOTNET_SYSTEM_GLOBALIZATION_INVARIANTtrue 또는 1로 설정합니다.

Important

프로젝트 파일 또는 runtimeconfig.json에 설정된 값이 환경 변수보다 우선 순위가 높습니다.

자세한 내용은 .NET 세계화 고정 모드를 참조하세요.

DOTNET_SYSTEM_GLOBALIZATION_USENLS

이것은 Windows에만 적용됩니다. NLS(국가별 언어 지원)를 사용하는 세계화의 경우 DOTNET_SYSTEM_GLOBALIZATION_USENLStrue 또는 1로 설정합니다. 사용하지 않으려면 DOTNET_SYSTEM_GLOBALIZATION_USENLSfalse 또는 0으로 설정합니다.

DOTNET_SYSTEM_NET_SOCKETS_*

이 섹션에서는 두 가지 System.Net.Sockets 환경 변수에 대해 중점적으로 설명합니다.

  • DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
  • DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT

소켓 연속은 이벤트 스레드에서 System.Threading.ThreadPool로 디스패치됩니다. 이렇게 하면 이벤트 처리를 계속 차단하는 것을 방지할 수 있습니다. 연속 작업이 이벤트 스레드에서 직접 실행되도록 하려면 DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS1로 설정합니다. 기본적으로 비활성화되어 있습니다.

참고 항목

이 설정은 IO 스레드를 필요 이상으로 오래 유지하는 비용이 높은 작업이 있는 경우 성능을 저하시킬 수 있습니다. 테스트를 통해 이 설정이 성능에 도움이 되는지 확인하십시오.

매우 높은 부하에서 다수의 작은 소켓 읽기 및 쓰기를 생성하는 TechEmpower 벤치마크를 사용하면, 단일 소켓 엔진이 최대 30개의 x64 및 8개의 Arm64 CPU 코어로 계속 작업을 수행할 수 있습니다. 대다수의 실제 시나리오는 이렇게 큰 부하(초당 수십만 건의 요청)를 절대 생성하지 않으며 단일 생산자만 있으면 거의 항상 충분합니다. 그러나 극단적인 부하를 처리할 수 있도록 하기 위해 DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT를 사용하여 계산된 값을 재정의할 수 있습니다. 재정의되지 않으면 다음 값이 사용됩니다.

  • DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS1이면 Environment.ProcessorCount 값이 사용됩니다.
  • DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS1이 아니면 RuntimeInformation.ProcessArchitecture가 평가됩니다.
    • Arm 또는 Arm64의 경우 엔진당 코어 수 값은 8로 설정되고 그렇지 않으면 30으로 설정됩니다.
  • 엔진당 확인된 코어를 사용하고, 엔진당 코어에 대해 최댓값 1 또는 Environment.ProcessorCount를 설정합니다.

DOTNET_SYSTEM_NET_DISABLEIPV6

IPv6(인터넷 프로토콜 버전 6)을 사용하지 않도록 설정되었는지 여부를 확인하는 데 도움이 됩니다. true 또는 1로 설정된 경우 System.AppContext에 달리 지정되지 않는 한 IPv6은 사용하지 않도록 설정됩니다.

DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER

다음 메커니즘 중 하나를 사용하여 이전 HttpClientHandler를 사용하도록 프로세스를 구성할 수 있습니다.

코드에서 AppContext 클래스를 사용합니다.

AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);

AppContext 스위치는 구성 파일로 설정할 수도 있습니다. 스위치 구성에 대한 자세한 내용은 라이브러리 소비자를 위한 AppContext를 참조하세요.

환경 변수 DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER를 통해 동일한 구현이 가능합니다. 옵트아웃하려면 값을 false 또는 0 중 하나로 설정합니다.

참고 항목

.NET 5부터 HttpClientHandler를 사용하기 위한 이 설정을 더 이상 사용할 수 없습니다.

DOTNET_Jit*DOTNET_GC*

JIT 및 JIT 생성 GC 정보에는 JIT 스트레스 및 GC Hole 스트레스라는 두 가지 스트레스 관련 기능이 있습니다. 이러한 기능을 사용하면 개발 중에 복잡한 애플리케이션을 개발하지 않고도 에지 케이스와 "실제" 시나리오를 더 많이 발견할 수 있습니다. 다음 환경 변수를 사용할 수 있습니다.

  • DOTNET_JitStress
  • DOTNET_JitStressModeNamesOnly
  • DOTNET_GCStress

JIT 스트레스

JIT 스트레스를 사용하도록 설정하는 방법은 여러 가지가 있습니다. 메서드 이름의 해시를 기반으로 다양한 수준의 JIT 최적화를 생성하려면 DOTNET_JitStress를 0이 아닌 정수 값으로 설정합니다. 예를 들어 모든 최적화를 적용하려면 DOTNET_JitStress=2를 설정합니다. JIT 스트레스를 활성화하는 또 다른 방법은 DOTNET_JitStressModeNamesOnly=1을 설정한 다음, DOTNET_JitStressModeNames 변수에서 공백으로 구분된 스트레스 모드를 요청하는 것입니다.

예를 들어 다음을 고려하십시오.

DOTNET_JitStressModeNames=STRESS_USE_CMOV STRESS_64RSLT_MUL STRESS_LCL_FLDS

GC Hole 스트레스

GC Hole 스트레스를 사용하도록 설정하면 GC가 항상 특정 위치에서 발생하여 GC Hole을 추적하는 데 도움이 됩니다. DOTNET_GCStress 환경 변수를 사용하여 GC Hole 스트레스를 사용하도록 설정할 수 있습니다.

자세한 내용은 JIT 및 GC Hole 스트레스 조사를 참조하세요.

JIT 메모리 장벽

Arm64용 코드 생성기를 사용하면 DOTNET_JitNoMemoryBarriers1로 설정하여 모든 MemoryBarriers 명령을 제거할 수 있습니다.

DOTNET_RUNNING_IN_CONTAINERDOTNET_RUNNING_IN_CONTAINERS

공식 .NET 이미지(Windows 및 Linux)는 잘 알려진 환경 변수를 설정합니다.

  • DOTNET_RUNNING_IN_CONTAINER
  • DOTNET_RUNNING_IN_CONTAINERS

이러한 값은 ASP.NET Core 워크로드가 컨테이너 컨텍스트에서 실행되는 시기를 확인하는 데 사용됩니다.

DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION

Console.IsOutputRedirectedtrue이면 DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION1 또는 true로 설정하여 ANSI 색 코드를 내보낼 수 있습니다.

  • DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL: 1 또는 true인 경우 기본 Activity Id 형식은 계층적입니다.
  • DOTNET_SYSTEM_RUNTIME_CACHING_TRACING: 디버그로 실행할 때 이 값이 true이면 추적을 사용하도록 설정할 수 있습니다.

DOTNET_DiagnosticPorts

진단 도구가 .NET 런타임과 통신할 수 있는 대체 엔드포인트를 구성합니다. 자세한 내용은 진단 포트 설명서를 참조하세요.

DOTNET_DefaultDiagnosticPortSuspend

1로 설정된 경우 시작하는 동안 일시 중지하고 지정된 진단 포트의 Diagnostics IPC ResumeStartup 명령을 기다리도록 런타임을 구성합니다. 기본값은 0입니다. 자세한 내용은 진단 포트 설명서를 참조하세요.

DOTNET_EnableDiagnostics

0으로 설정하면 진단 포트를 통한 디버깅, 프로파일링 및 기타 진단이 사용하지 않도록 설정되고 다른 진단 설정으로 재정의될 수 없습니다. 기본값은 1입니다.

DOTNET_EnableDiagnostics_IPC

.NET 8부터 0으로 설정하면 진단 포트가 사용하지 않도록 설정되고 다른 진단 설정으로 재정의될 수 없습니다. 기본값은 1입니다.

DOTNET_EnableDiagnostics_Debugger

.NET 8부터 0으로 설정하면 디버깅이 사용하지 않도록 설정되고 다른 진단 설정으로 재정의될 수 없습니다. 기본값은 1입니다.

DOTNET_EnableDiagnostics_Profiler

.NET 8부터 0으로 설정하면 프로파일링이 사용하지 않도록 설정되고 다른 진단 설정으로 재정의될 수 없습니다. 기본값은 1입니다.

EventPipe 변수

자세한 내용은 EventPipe 환경 변수를 참조하세요.

  • DOTNET_EnableEventPipe: 1로 설정하면 EventPipe를 통한 추적이 사용하도록 설정됩니다.
  • DOTNET_EventPipeOutputPath: 추적이 기록될 출력 경로입니다.
  • DOTNET_EventPipeOutputStreaming: 1로 설정하면 앱이 실행되는 동안 출력 파일로 스트리밍할 수 있습니다. 기본적으로 추적 정보는 순환 버퍼에 누적되며 앱 종료 시 콘텐츠가 기록됩니다.

.NET SDK 및 CLI 환경 변수

DOTNET_ROOT, DOTNET_ROOT(x86)

기본 위치에 설치되지 않은 경우 .NET 런타임의 위치를 지정합니다. Windows에서 기본 위치는 C:\Program Files\dotnet입니다. macOS의 기본 위치는 /usr/local/share/dotnet입니다. Linux의 기본 위치는 distro 및 설치 방법에 따라 다릅니다. Ubuntu 22.04의 기본 위치는 /usr/share/dotnet(packages.microsoft.com에서 설치된 경우) 또는 /usr/lib/dotnet(Jammy 피드에서 설치된 경우)입니다. 자세한 내용은 다음 리소스를 참조하세요.

이 환경 변수는 생성된 실행 파일(apphost)을 통해 앱을 실행할 때만 사용됩니다. 64비트 OS에서 32비트 실행 파일을 실행할 때는 대신 DOTNET_ROOT(x86)가 사용됩니다.

DOTNET_HOST_PATH

현재 시작 중인 dotnet 프로세스를 시작하는 데 사용된 dotnet 호스트(Windows의 경우 dotnet.exe, Linux 및 macOS의 경우 dotnet)에 대한 절대 경로를 지정합니다. 이는 .NET SDK에서 .NET SDK 명령 중에 실행되는 도구가 명령 기간 동안 만드는 모든 자식 dotnet 프로세스에 대해 동일한 dotnet 런타임을 사용하는지 확인하는 데 사용됩니다. dotnet 호스트를 통해 이진 파일을 호출하는 SDK 내의 도구 및 MSBuild 작업은 일관된 환경을 보장하기 위해 이 환경 변수를 준수해야 합니다.

SDK 명령 중에 dotnet을 호출하는 도구는 다음 알고리즘을 사용하여 이를 찾아야 합니다.

  • DOTNET_HOST_PATH가 설정된 경우 해당 값을 직접 사용합니다.
  • 그렇지 않으면 시스템의 PATH를 통해 dotnet을 사용합니다.

참고 항목

DOTNET_HOST_PATHdotnet 호스트를 찾기 위한 일반적인 솔루션이 아닙니다. .NET SDK에서 호출되는 도구에서만 사용하도록 만들어졌습니다.

DOTNET_LAUNCH_PROFILE

dotnet run 명령은 이 변수를 선택한 시작 프로필로 설정합니다.

다음과 같은 launchSettings.json 파일이 제공됩니다.

{
  "profiles": {
    "First": {
      "commandName": "Project",
    },
    "Second": {
      "commandName": "Project",
    }
  }
}

그리고 다음 Program.cs 파일:

var value = Environment.GetEnvironmentVariable("DOTNET_LAUNCH_PROFILE");
Console.WriteLine($"DOTNET_LAUNCH_PROFILE={value}");

다음 시나리오에서는 표시된 출력을 생성합니다.

  • 시작 프로필이 지정되었으며 존재함

    $ dotnet run --launch-profile First
    DOTNET_LAUNCH_PROFILE=First
    
  • 시작 프로필이 지정되지 않았으며 첫 번째 프로필이 선택됨

    $ dotnet run
    DOTNET_LAUNCH_PROFILE=First
    
  • 시작 프로필이 지정되었지만 존재하지 않음

    $ 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=
    
  • 프로필 없이 시작

    $ dotnet run --no-launch-profile
    DOTNET_LAUNCH_PROFILE=
    

NUGET_PACKAGES

글로벌 패키지 폴더입니다. 설정하지 않으면 기본적으로 Unix에서는 ~/.nuget/packages, Windows에서는 %userprofile%\.nuget\packages로 지정됩니다.

DOTNET_SERVICING

런타임을 로드할 때 공유 호스트에서 사용할 서비스 인덱스의 위치를 지정합니다.

처음 실행할 때 .NET 시작 및 원격 분석 메시지를 표시할지 여부를 지정합니다. 이러한 메시지를 음소거하려면 true로 설정하고(true, 1 또는 yes 값 사용) 허용하려면 false로 설정합니다(false, 0 또는 no 값 사용). 설정되지 않은 경우 기본값은 false이고 처음 실행될 때 메시지가 표시됩니다. 이 플래그는 원격 분석에 영향을 주지 않습니다(원격 분석 보내기를 옵트아웃하는 경우 DOTNET_CLI_TELEMETRY_OPTOUT 참조).

DOTNET_CLI_PERF_LOG

현재 CLI 세션에 대한 성능 세부 정보를 기록할지 여부를 지정합니다. 1, true 또는 yes로 설정하면 사용하도록 설정됩니다. 이 옵션은 기본적으로 사용하지 않도록 설정되어 있습니다.

DOTNET_GENERATE_ASPNET_CERTIFICATE

ASP.NET Core 인증서를 생성할지 여부를 지정합니다. 기본값은 true이지만 이 환경 변수를 0, false 또는 no로 설정하여 재정의할 수 있습니다.

DOTNET_ADD_GLOBAL_TOOLS_TO_PATH

PATH 환경 변수에 전역 도구를 추가할지 여부를 지정합니다. 기본값은 true입니다. 경로에 전역 도구를 추가하지 않으려면 0, false 또는 no로 설정합니다.

DOTNET_CLI_TELEMETRY_OPTOUT

.NET 도구 사용에 대한 데이터를 수집하여 Microsoft에 전송할지 여부를 지정합니다. 원격 분석 기능을 옵트아웃하려면 true로 설정합니다(값 true, 1 또는 yes가 허용됨). 이외의 경우 원격 분석 기능을 옵트인하려면 false로 설정합니다(false, 0 또는 no가 허용됨). 설정하지 않으면 기본적으로 false이고 원격 분석 기능은 활성화됩니다.

DOTNET_SKIP_FIRST_TIME_EXPERIENCE

DOTNET_SKIP_FIRST_TIME_EXPERIENCEtrue로 설정된 경우 NuGetFallbackFolder는 디스크로 확장되지 않으며 더 짧은 시작 메시지와 원격 분석 알림이 표시됩니다.

참고 항목

이 환경 변수는 .NET Core 3.0 이상에서 더 이상 지원되지 않습니다. 대신 DOTNET_NOLOGO를 사용합니다.

DOTNET_MULTILEVEL_LOOKUP

전역 위치에서 .NET 런타임, 공유 프레임워크 또는 SDK가 확인되는지 여부를 지정합니다. 설정하지 않은 경우 기본값은 1(논리적 true)입니다. 전역 위치에서 확인하지 않고 .NET 설치를 격리하려면 값을 0(논리적 false)으로 설정합니다. 다중 수준의 조회에 대한 자세한 내용은 다중 수준 SharedFX 조회를 참조하세요.

참고 항목

이 환경 변수는 .NET 6 및 이전 버전을 대상으로 하는 애플리케이션에만 적용됩니다. .NET 7부터 .NET은 한 위치에서만 프레임워크를 찾습니다. 자세한 내용은 다단계 조회가 사용하지 않도록 설정됨을 참조하세요.

DOTNET_ROLL_FORWARD

롤포워드 동작을 결정합니다. 자세한 내용은 dotnet 명령의 --roll-forward 옵션을 참조하세요.

DOTNET_ROLL_FORWARD_TO_PRERELEASE

1(사용)로 설정된 경우 릴리스 버전에서 시험판 버전으로 롤포워드를 사용하도록 설정합니다. 기본적으로(0 - 사용 안 함) .NET 런타임의 릴리스 버전이 요청되면 롤포워드는 설치된 릴리스 버전만 고려합니다.

자세한 내용은 dotnet 명령의 --roll-forward 옵션을 참조하세요.

DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX

0으로 설정된 경우 부 버전 롤포워드를 사용하지 않도록 설정합니다. 이 설정은 .NET Core 3.0에서 DOTNET_ROLL_FORWARD로 대체되었습니다. 새 설정을 대신 사용해야 합니다.

DOTNET_CLI_FORCE_UTF8_ENCODING

UTF-8을 완전히 지원하지 않는 이전 버전의 Windows 10의 경우에도 콘솔에서 UTF-8 인코딩을 강제로 사용합니다. 자세한 내용은 완료 시 SDK가 더 이상 콘솔 인코딩을 변경하지 않음을 참조하세요.

DOTNET_CLI_UI_LANGUAGE

en-us와 같은 로캘 값을 사용하여 CLI UI의 언어를 설정합니다. 지원되는 값은 Visual Studio의 경우와 동일합니다. 자세한 내용은 Visual Studio 설치 설명서에서 설치 프로그램 언어 변경에 대한 섹션을 참조하세요. .NET 리소스 관리자 규칙이 적용되므로, 정확한 일치를 선택할 필요가 없습니다. CultureInfo 트리에서 하위 항목을 선택할 수도 있습니다. 예를 들어 fr-CA로 설정하면 CLI에서 fr 번역을 찾아 사용합니다. 지원되지 않는 언어로 설정하면 CLI는 영어로 대체됩니다.

DOTNET_DISABLE_GUI_ERRORS

GUI 지원 생성된 실행 파일의 경우 일반적으로 특정 오류 클래스에 대해 표시하는 대화 상자 팝업을 사용하지 않도록 설정합니다. stderr에만 쓰고 이러한 경우에는 종료됩니다.

DOTNET_ADDITIONAL_DEPS

CLI 옵션 --additional-deps와 같습니다.

DOTNET_RUNTIME_ID

검색된 RID를 재정의합니다.

DOTNET_SHARED_STORE

일부 경우에는 어셈블리 확인이 대체되는 "공유 저장소"의 위치입니다.

DOTNET_STARTUP_HOOKS

시작 후크를 로드하고 실행하는 어셈블리의 목록입니다.

DOTNET_BUNDLE_EXTRACT_BASE_DIR

단일 파일 애플리케이션이 실행되기 전에 추출되는 디렉터리를 지정합니다.

자세한 내용은 단일 파일 실행 파일을 참조하세요.

DOTNET_CLI_CONTEXT_*

  • DOTNET_CLI_CONTEXT_VERBOSE: 자세한 컨텍스트를 사용하도록 설정하려면 true로 설정합니다.
  • DOTNET_CLI_CONTEXT_ANSI_PASS_THRU: ANSI 통과를 사용하도록 설정하려면 true로 설정합니다.

DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE

워크로드에 대한 광고 매니페스트의 백그라운드 다운로드를 사용하지 않도록 설정합니다. 기본값은 false입니다. 즉, 사용됩니다. true로 설정되면 다운로드가 사용되지 않습니다. 자세한 내용은 광고 매니페스트를 참조하세요.

DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_INTERVAL_HOURS

워크로드에 대한 광고 매니페스트의 백그라운드 다운로드 간 최소 시간을 지정합니다. 기본값은 24이며 하루의 최대 횟수입니다. 자세한 내용은 광고 매니페스트를 참조하세요.

DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT

.NET SDK 로컬 도구가 Windows의 루트 폴더에서 도구 매니페스트 파일을 검색하는지 여부를 지정합니다. 기본값은 false입니다.

COREHOST_TRACE

호스팅 구성 요소(예: dotnet.exe, hostfxr, hostpolicy)에서 진단 추적을 제어합니다.

  • COREHOST_TRACE=[0/1] -기본값은 0(추적 사용 안 함)입니다. 1로 설정된 경우 진단 추적이 사용됩니다.

  • COREHOST_TRACEFILE=<file path> - COREHOST_TRACE=1을 설정하여 추적을 사용하도록 설정된 경우에만 효과가 있습니다. 설정되면 추적 정보가 지정된 파일에 기록되고, 그렇지 않으면 추적 정보가 stderr에 기록됩니다.

  • COREHOST_TRACE_VERBOSITY=[1/2/3/4] - 기본값은 4입니다. 이 설정은 COREHOST_TRACE=1을 통해 추적을 사용하도록 설정한 경우에만 사용됩니다.

    • 4 - 모든 추적 정보가 기록됩니다.
    • 3 - 정보, 경고 및 오류 메시지만 기록됩니다.
    • 2 - 경고 및 오류 메시지만 기록됩니다.
    • 1 - 오류 메시지만 기록됩니다.

애플리케이션 시작에 대한 자세한 추적 정보를 얻는 일반적인 방법은 COREHOST_TRACE=1COREHOST_TRACEFILE=host_trace.txt를 설정하고 애플리케이션을 실행하는 것입니다. 현재 디렉터리에 새 파일 host_trace.txt가 생성되어 자세한 정보가 기록됩니다.

SuppressNETCoreSdkPreviewMessage

true로 설정된 경우 dotnet을 호출하면 미리 보기 SDK가 사용되고 있을 때 경고가 생성되지 않습니다.

.NET CLI에서 MSBuild 구성

MSBuild를 out-of-process로 실행하려면 DOTNET_CLI_RUN_MSBUILD_OUTOFPROC 환경 변수를 1, true 또는 yes로 설정합니다. 기본적으로 MSBuild는 in-proc으로 실행됩니다. MSBuild가 외부 작업 노드 장기 프로세스를 사용하여 프로젝트를 빌드하도록 하려면 DOTNET_CLI_USE_MSBUILDNOINPROCNODE1, true 또는 yes로 설정합니다. 그러면 MSBUILDNOINPROCNODE 환경 변수가 1로 설정되며, 이것을 MSBuild Server V1이라고 합니다. 입력 프로세스가 여기에 대부분의 작업을 전달하기 때문입니다.

DOTNET_MSBUILD_SDK_RESOLVER_*

해결된 SDK 작업 및 대상이 지정된 기본 디렉터리에서 오도록 하고 지정된 버전을 MSBuild에 보고하는 데 사용되는 재정의이며, 알 수 없는 경우 null일 수 있습니다. 이에 대한 한 가지 주요 사용 사례는 .NET Core SDK를 사용하여 SDK 작업 및 대상을 배포하지 않고 테스트하는 것입니다.

  • DOTNET_MSBUILD_SDK_RESOLVER_SDKS_DIR: .NET SDK 디렉터리를 재정의합니다.
  • DOTNET_MSBUILD_SDK_RESOLVER_SDKS_VER: .NET SDK 버전을 재정의합니다.
  • DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR: dotnet.exe 디렉터리 경로를 재정의합니다.

DOTNET_NEW_PREFERRED_LANG

-lang|--language 스위치가 생략된 경우 dotnet new 명령에 대한 기본 프로그래밍 언어를 구성합니다. 기본값은 C#입니다. 유효한 값은 C#, F# 또는 VB입니다. 자세한 내용은 dotnet new를 참조합니다.

dotnet watch 환경 변수

환경 변수로 사용할 수 있는 dotnet watch 설정에 대한 자세한 내용은 dotnet watch 환경 변수를 참조하세요.

참고 항목