Zmienne środowiskowe platformy .NET
Ten artykuł dotyczy: ✔️ zestaw .NET Core 3.1 SDK i nowsze wersje
W tym artykule dowiesz się więcej o zmiennych środowiskowych używanych przez platformę .NET. Niektóre zmienne środowiskowe są używane przez środowisko uruchomieniowe platformy .NET, a inne są używane tylko przez zestaw .NET SDK i interfejs wiersza polecenia platformy .NET. Niektóre zmienne środowiskowe są używane przez wszystkie trzy składniki.
Zmienne środowiskowe środowiska uruchomieniowego platformy .NET
DOTNET_SYSTEM_NET_HTTP_*
Istnieje kilka globalnych ustawień zmiennej środowiskowej HTTP:
DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION
- Wskazuje, czy włączyć propagację działań programu obsługi diagnostycznej dla globalnych ustawień PROTOKOŁU HTTP.
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT
- Po ustawieniu wartości
false
lub0
wyłącza obsługę protokołu HTTP/2, która jest domyślnie włączona.
- Po ustawieniu wartości
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT
- Po ustawieniu
true
wartości lub1
włącza obsługę protokołu HTTP/3, która jest domyślnie wyłączona.
- Po ustawieniu
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING
- W przypadku ustawienia
false
wartości lub0
zastępuje wartość domyślną i wyłącza algorytm skalowania dynamicznego okna HTTP/2.
- W przypadku ustawienia
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE
- Wartość domyślna to 16 MB. Po zastąpieniu maksymalny rozmiar okna odbierania strumienia HTTP/2 nie może być mniejszy niż 65 535.
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER
- Wartość domyślna to 1.0. Po zastąpieniu wyższe wartości powodują krótsze okno, ale wolniejsze pobieranie. Nie może być mniejszy niż 0.
DOTNET_SYSTEM_GLOBALIZATION_*
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT
: Zobacz ustawianie niezmiennego trybu.DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY
: określa, czy mają być ładowane tylko wstępnie zdefiniowane kultury.DOTNET_SYSTEM_GLOBALIZATION_APPLOCALICU
: wskazuje, czy używać lokalnych międzynarodowych składników Unicode (ICU). Aby uzyskać więcej informacji, zobacz App-local ICU( App-local ICU).
Ustawianie niezmiennego trybu
Aplikacje mogą włączyć niezmienny tryb w dowolny z następujących sposobów:
W pliku projektu:
<PropertyGroup> <InvariantGlobalization>true</InvariantGlobalization> </PropertyGroup>
W pliku runtimeconfig.json:
{ "runtimeOptions": { "configProperties": { "System.Globalization.Invariant": true } } }
Ustawiając wartość
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT
zmiennej środowiskowej natrue
lub1
.
Ważne
Wartość ustawiona w pliku projektu lub runtimeconfig.json ma wyższy priorytet niż zmienna środowiskowa.
Aby uzyskać więcej informacji, zobacz Tryb niezmienny globalizacji platformy .NET.
DOTNET_SYSTEM_GLOBALIZATION_USENLS
Dotyczy to tylko systemu Windows. Aby globalizacja korzystała z obsługi języka narodowego (NLS), ustaw wartość DOTNET_SYSTEM_GLOBALIZATION_USENLS
true
na wartość lub 1
. Aby go nie używać, ustaw wartość DOTNET_SYSTEM_GLOBALIZATION_USENLS
na false
lub 0
.
DOTNET_SYSTEM_NET_SOCKETS_*
Ta sekcja koncentruje się na dwóch System.Net.Sockets
zmiennych środowiskowych:
DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT
Kontynuacje gniazd są wysyłane do System.Threading.ThreadPool wątku zdarzeń. Pozwala to uniknąć kontynuacji blokujących obsługę zdarzeń. Aby zezwolić na uruchamianie kontynuacji bezpośrednio w wątku zdarzeń, ustaw wartość DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
1
. Jest ona domyślnie wyłączona.
Uwaga
To ustawienie może pogorszyć wydajność, jeśli istnieje kosztowna praca, która w końcu będzie trzymać się wątku we/wy dłużej niż jest to potrzebne. Przetestuj, aby upewnić się, że to ustawienie pomaga w wydajności.
Korzystając z testów porównawczych TechEmpower, które generują wiele małych odczytów i zapisów gniazd pod bardzo dużym obciążeniem, pojedynczy aparat gniazda jest w stanie utrzymać zajęty do trzydziestu x64 i ośmiu rdzeni procesora Arm64. Zdecydowana większość rzeczywistych scenariuszy nigdy nie wygeneruje tak ogromnego obciążenia (setki tysięcy żądań na sekundę), a posiadanie jednego producenta jest prawie zawsze wystarczające. Jednak aby upewnić się, że obciążenia ekstremalne mogą być obsługiwane, można użyć DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT
polecenia , aby zastąpić obliczoną wartość. Jeśli nie zostanie zastąpiona, zostanie użyta następująca wartość:
- Gdy
DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
wartość to1
, Environment.ProcessorCount używana jest wartość. - Jeśli
DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
parametr nie1
ma wartości , RuntimeInformation.ProcessArchitecture jest obliczany:- Gdy arm lub Arm64 rdzenie na wartość aparatu jest ustawiona na
8
wartość , w przeciwnym razie30
.
- Gdy arm lub Arm64 rdzenie na wartość aparatu jest ustawiona na
- Używając określonych rdzeni na silnik, maksymalna wartość
1
rdzeni na silnik lub Environment.ProcessorCount na rdzeniach na silnik.
DOTNET_SYSTEM_NET_DISABLEIPV6
Pomaga określić, czy protokół internetowy w wersji 6 (IPv6) jest wyłączony. W przypadku ustawienia na true
wartość lub 1
protokół IPv6 jest wyłączony, chyba że określono inaczej w elemecie System.AppContext.
DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER
Możesz użyć jednego z następujących mechanizmów, aby skonfigurować proces do używania starszego HttpClientHandler
elementu :
Z poziomu kodu użyj AppContext
klasy :
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
Przełącznik AppContext
można również ustawić za pomocą pliku konfiguracji. Aby uzyskać więcej informacji na temat konfigurowania przełączników, zobacz AppContext dla użytkowników biblioteki.
To samo można osiągnąć za pomocą zmiennej środowiskowej DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER
. Aby zrezygnować, ustaw wartość na false
wartość lub 0
.
Uwaga
Począwszy od platformy .NET 5, to ustawienie do użycia HttpClientHandler nie jest już dostępne.
DOTNET_Jit*
i DOTNET_GC*
Istnieją dwie stresujące funkcje związane z JIT i JIT generowane przez GC informacje: JIT Stress i GC Hole Stress. Te funkcje umożliwiają opracowywanie scenariuszy brzegowych i bardziej "rzeczywistych" scenariuszy bez konieczności opracowywania złożonych aplikacji. Dostępne są następujące zmienne środowiskowe:
DOTNET_JitStress
DOTNET_JitStressModeNamesOnly
DOTNET_GCStress
Stres JIT
Włączenie funkcji JIT Stress można wykonać na kilka sposobów. Ustaw DOTNET_JitStress
wartość innej niż zero liczb całkowitych, aby wygenerować różne poziomy optymalizacji JIT na podstawie skrótu nazwy metody. Aby zastosować wszystkie optymalizacje, na DOTNET_JitStress=2
przykład . Innym sposobem włączenia środowiska JIT Stress jest ustawienie, DOTNET_JitStressModeNamesOnly=1
a następnie żądanie trybów przeciążenia, rozdzielonych spacjami w zmiennej DOTNET_JitStressModeNames
.
Rozważmy na przykład:
DOTNET_JitStressModeNames=STRESS_USE_CMOV STRESS_64RSLT_MUL STRESS_LCL_FLDS
Stres otworu GC
Włączenie przeciążenia otworu GC powoduje, że GC zawsze występują w określonych lokalizacjach i pomaga wytropić otwory GC. Narzędzie GC Hole Stress można włączyć przy użyciu zmiennej środowiskowej DOTNET_GCStress
.
Aby uzyskać więcej informacji, zobacz Badanie przeciążenia otworów JIT i GC.
Bariery pamięci JIT
Generator kodu dla usługi Arm64 umożliwia usunięcie wszystkich MemoryBarriers
instrukcji przez ustawienie na DOTNET_JitNoMemoryBarriers
1
.
DOTNET_RUNNING_IN_CONTAINER
i DOTNET_RUNNING_IN_CONTAINERS
Oficjalne obrazy platformy .NET (Windows i Linux) ustawiają dobrze znane zmienne środowiskowe:
DOTNET_RUNNING_IN_CONTAINER
DOTNET_RUNNING_IN_CONTAINERS
Te wartości służą do określania, kiedy obciążenia ASP.NET Core działają w kontekście kontenera.
DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION
Gdy Console.IsOutputRedirected parametr ma true
wartość , możesz emitować kod koloru ANSI, ustawiając wartość DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION
na 1
wartość lub true
.
DOTNET_SYSTEM_DIAGNOSTICS
i powiązane zmienne
DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL
: Gdy1
lubtrue
, domyślny format identyfikatora działania jest hierarchiczny.DOTNET_SYSTEM_RUNTIME_CACHING_TRACING
: W przypadku uruchamiania jako debugowania śledzenie można włączyć, gdy jesttrue
to .
DOTNET_DiagnosticPorts
Konfiguruje alternatywne punkty końcowe, w których narzędzia diagnostyczne mogą komunikować się ze środowiskiem uruchomieniowym platformy .NET. Aby uzyskać więcej informacji, zobacz dokumentację portu diagnostycznego.
DOTNET_DefaultDiagnosticPortSuspend
Konfiguruje środowisko uruchomieniowe, aby wstrzymało się podczas uruchamiania i czekało na polecenie ResumeStartup diagnostyki IPC z określonego portu diagnostycznego po ustawieniu wartości 1. Wartość domyślna to 0. Aby uzyskać więcej informacji, zobacz dokumentację portu diagnostycznego.
DOTNET_EnableDiagnostics
W przypadku ustawienia na 0
wartość program wyłącza debugowanie, profilowanie i inną diagnostykę za pośrednictwem portu diagnostycznego i nie może być zastępowany przez inne ustawienia diagnostyczne. Wartość domyślna to 1
.
DOTNET_EnableDiagnostics_IPC
Począwszy od platformy .NET 8, w przypadku ustawienia na 0
wartość , wyłącza port diagnostyczny i nie można go zastąpić innymi ustawieniami diagnostycznymi. Wartość domyślna to 1
.
DOTNET_EnableDiagnostics_Debugger
Począwszy od platformy .NET 8, gdy jest ustawiona na 0
wartość , wyłącza debugowanie i nie można zastąpić innymi ustawieniami diagnostycznymi. Wartość domyślna to 1
.
DOTNET_EnableDiagnostics_Profiler
Począwszy od platformy .NET 8, gdy jest ustawiona na 0
wartość , wyłącza profilowanie i nie można go zastąpić innymi ustawieniami diagnostycznymi. Wartość domyślna to 1
.
Zmienne EventPipe
Aby uzyskać więcej informacji, zobacz Zmienne środowiskowe EventPipe.
DOTNET_EnableEventPipe
: w przypadku ustawienia na1
wartość , włącza śledzenie za pośrednictwem elementu EventPipe.DOTNET_EventPipeOutputPath
: ścieżka wyjściowa, w której zostanie zapisany ślad.DOTNET_EventPipeOutputStreaming
: w przypadku ustawienia na wartość1
parametr włącza przesyłanie strumieniowe do pliku wyjściowego, gdy aplikacja jest uruchomiona. Domyślnie informacje śledzenia są gromadzone w buforze cyklicznym, a zawartość jest zapisywana podczas zamykania aplikacji.
Zmienne środowiskowe zestawu .NET SDK i interfejsu wiersza polecenia
DOTNET_ROOT
, , DOTNET_ROOT(x86)
, , DOTNET_ROOT_X86
DOTNET_ROOT_X64
Określa lokalizację środowisk uruchomieniowych platformy .NET, jeśli nie są zainstalowane w lokalizacji domyślnej. Domyślną lokalizacją w systemie Windows jest C:\Program Files\dotnet
. Domyślną lokalizacją w systemie macOS jest /usr/local/share/dotnet
. Domyślną lokalizacją środowisk uruchomieniowych x64 w systemie operacyjnym arm64 jest podfolder x64 (tak w C:\Program Files\dotnet\x64
systemach windows i /usr/local/share/dotnet/x64
macOS). Domyślna lokalizacja w systemie Linux różni się w zależności od metody dystrybucji i raty. Domyślna lokalizacja w systemie Ubuntu 22.04 to /usr/share/dotnet
(po zainstalowaniu z packages.microsoft.com
programu ) lub /usr/lib/dotnet
(po zainstalowaniu z kanału informacyjnego Narzędzia Jammy). Aby uzyskać więcej informacji, zobacz następujące zasoby:
- Rozwiązywanie problemów z błędami uruchamiania aplikacji
- Problem z usługą GitHub dotnet/core#7699
- Problem z usługą GitHub dotnet/runtime#79237
Ta zmienna środowiskowa jest używana tylko w przypadku uruchamiania aplikacji za pośrednictwem wygenerowanych plików wykonywalnych (apphosts). DOTNET_ROOT(x86)
Zamiast tego jest używany podczas uruchamiania 32-bitowego pliku wykonywalnego w 64-bitowym systemie operacyjnym. DOTNET_ROOT_X64
Zamiast tego jest używany podczas uruchamiania 64-bitowego pliku wykonywalnego w systemie operacyjnym ARM64.
DOTNET_HOST_PATH
Określa ścieżkę bezwzględną dotnet
do hosta (dotnet.exe
w systemie Windows, dotnet
w systemie Linux i macOS), który został użyty do uruchomienia aktualnie uruchomionego dotnet
procesu. Jest to używane przez zestaw .NET SDK, aby ułatwić narzędzia uruchamiane podczas poleceń zestawu SDK platformy .NET, aby upewnić się, że używają tego samego dotnet
środowiska uruchomieniowego dla wszystkich procesów podrzędnych dotnet
tworzonych przez cały czas trwania polecenia. Narzędzia i zadania MSBuild w zestawie SDK, które wywołują pliki binarne za pośrednictwem dotnet
hosta, powinny honorować tę zmienną środowiskową w celu zapewnienia spójnego środowiska.
Narzędzia, które wywołują dotnet
podczas wykonywania polecenia zestawu SDK, powinny używać następującego algorytmu, aby go zlokalizować:
- jeśli
DOTNET_HOST_PATH
wartość jest ustawiona, użyj tej wartości bezpośrednio - w przeciwnym razie polegaj na
dotnet
systemiePATH
Uwaga
DOTNET_HOST_PATH
nie jest ogólnym rozwiązaniem do lokalizowania dotnet
hosta. Jest ona przeznaczona tylko do użycia przez narzędzia wywoływane przez zestaw SDK platformy .NET.
DOTNET_LAUNCH_PROFILE
Polecenie dotnet run ustawia tę zmienną na wybrany profil uruchamiania.
Biorąc pod uwagę następujący plik launchSettings.json :
{
"profiles": {
"First": {
"commandName": "Project",
},
"Second": {
"commandName": "Project",
}
}
}
A następujący plik Program.cs :
var value = Environment.GetEnvironmentVariable("DOTNET_LAUNCH_PROFILE");
Console.WriteLine($"DOTNET_LAUNCH_PROFILE={value}");
W poniższych scenariuszach są wyświetlane dane wyjściowe:
Określ profil uruchamiania i istnieje
$ dotnet run --launch-profile First DOTNET_LAUNCH_PROFILE=First
Nie określono profilu uruchamiania, pierwszy wybrany
$ dotnet run DOTNET_LAUNCH_PROFILE=First
Określony profil uruchamiania, ale nie istnieje
$ 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=
Uruchamianie bez profilu
$ dotnet run --no-launch-profile DOTNET_LAUNCH_PROFILE=
NUGET_PACKAGES
Folder pakietów globalnych. Jeśli nie zostanie ustawiona, wartość domyślna ~/.nuget/packages
to w systemie Unix lub %userprofile%\.nuget\packages
w systemie Windows.
DOTNET_SERVICING
Określa lokalizację indeksu obsługi do użycia przez hosta udostępnionego podczas ładowania środowiska uruchomieniowego.
DOTNET_NOLOGO
Określa, czy komunikaty powitalne i telemetryczne platformy .NET są wyświetlane w pierwszym uruchomieniu. Ustaw wartość na wartość , aby true
wyciszyć te komunikaty (wartości true
, 1
lub yes
zaakceptowane) lub ustawić wartość , aby zezwolić false
na nie (wartości false
, 0
lub no
zaakceptowane). Jeśli nie zostanie ustawiona, wartość domyślna to false
i komunikaty będą wyświetlane w pierwszym uruchomieniu. Ta flaga nie ma wpływu na dane telemetryczne (zobacz DOTNET_CLI_TELEMETRY_OPTOUT
rezygnację z wysyłania danych telemetrycznych).
DOTNET_CLI_PERF_LOG
Określa, czy są rejestrowane szczegóły wydajności bieżącej sesji interfejsu wiersza polecenia. Włączone po ustawieniu wartości 1
, true
lub yes
. Ta opcja jest domyślnie wyłączona.
DOTNET_GENERATE_ASPNET_CERTIFICATE
Określa, czy chcesz wygenerować certyfikat ASP.NET Core. Wartość domyślna to true
, ale można ją zastąpić, ustawiając tę zmienną środowiskową na 0
wartość , false
lub no
.
DOTNET_ADD_GLOBAL_TOOLS_TO_PATH
Określa, czy dodać narzędzia globalne do zmiennej środowiskowej PATH
. Wartość domyślna to true
. Aby nie dodawać globalnych narzędzi do ścieżki, ustaw wartość 0
, false
lub no
.
DOTNET_CLI_TELEMETRY_OPTOUT
Określa, czy dane dotyczące użycia narzędzi platformy .NET są zbierane i wysyłane do firmy Microsoft. Ustaw wartość na wartość , aby true
zrezygnować z funkcji telemetrii (wartości true
, 1
lub yes
zaakceptowane). W przeciwnym razie ustaw wartość , aby wyrazić false
zgodę na funkcje telemetrii (wartości false
, 0
lub no
zaakceptowane). Jeśli nie zostanie ustawiona, wartość domyślna to false
, a funkcja telemetrii jest aktywna.
DOTNET_SKIP_FIRST_TIME_EXPERIENCE
Jeśli DOTNET_SKIP_FIRST_TIME_EXPERIENCE
ustawiono wartość true
, NuGetFallbackFolder
zostanie wyświetlona krótsza wiadomość powitalna i powiadomienie telemetrii nie zostanie rozwinięte na dysku.
Uwaga
Ta zmienna środowiskowa nie jest już obsługiwana w programie .NET Core 3.0 i nowszych wersjach.
Użyj DOTNET_NOLOGO
jako zamiennika.
DOTNET_MULTILEVEL_LOOKUP
Określa, czy środowisko uruchomieniowe platformy .NET, platforma udostępniona lub zestaw SDK są rozpoznawane z lokalizacji globalnej. Jeśli nie zostanie ustawiona, wartość domyślna to 1 (wartość logiczna true
). Ustaw wartość 0 (logiczną false
), aby nie rozpoznawać z lokalizacji globalnej i mają izolowane instalacje platformy .NET. Aby uzyskać więcej informacji na temat wyszukiwania wieloeziomowego, zobacz Wyszukiwanie Multi-level SharedFX.
Uwaga
Ta zmienna środowiskowa dotyczy tylko aplikacji przeznaczonych dla platformy .NET 6 i starszych wersji. Począwszy od platformy .NET 7, platforma .NET szuka tylko struktur w jednej lokalizacji. Aby uzyskać więcej informacji, zobacz Wyszukiwanie wieloeziomowe jest wyłączone.
DOTNET_ROLL_FORWARD
Określa zachowanie wprowadzania do przodu. Aby uzyskać więcej informacji, zobacz --roll-forward
opcję dotnet
polecenia .
DOTNET_ROLL_FORWARD_TO_PRERELEASE
Jeśli jest ustawiona 1
wartość (włączona), włącza wycofywanie do wersji wstępnej z wersji wydania. Domyślnie (0
— wyłączone), gdy jest żądana wersja środowiska uruchomieniowego .NET, wdrożenie będzie uwzględniać tylko zainstalowane wersje wydania.
Aby uzyskać więcej informacji, zobacz --roll-forward
opcję dotnet
polecenia
DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX
Wyłącza wycofywanie wersji pomocniczej, jeśli ustawiono wartość 0
. To ustawienie jest zastępowane w programie .NET Core 3.0 przez DOTNET_ROLL_FORWARD
. Zamiast tego należy użyć nowych ustawień.
DOTNET_CLI_FORCE_UTF8_ENCODING
Wymusza użycie kodowania UTF-8 w konsoli, nawet w przypadku starszych wersji systemu Windows 10, które nie obsługują w pełni utF-8. Aby uzyskać więcej informacji, zobacz Zestaw SDK nie zmienia już kodowania konsoli po zakończeniu.
DOTNET_CLI_UI_LANGUAGE
Ustawia język interfejsu użytkownika interfejsu wiersza polecenia przy użyciu wartości ustawień regionalnych, takich jak en-us
. Obsługiwane wartości są takie same jak w przypadku programu Visual Studio. Aby uzyskać więcej informacji, zobacz sekcję dotyczącą zmiany języka instalatora w dokumentacji instalacji programu Visual Studio. Reguły menedżera zasobów platformy .NET mają zastosowanie, aby nie trzeba było wybierać dokładnego dopasowania — można również wybrać elementy potomne w drzewie CultureInfo
. Jeśli na przykład ustawisz go na fr-CA
, interfejs wiersza polecenia znajdzie i użyje fr
tłumaczeń. Jeśli ustawisz go na język, który nie jest obsługiwany, interfejs wiersza polecenia powróci do języka angielskiego.
DOTNET_DISABLE_GUI_ERRORS
W przypadku wygenerowanych plików wykonywalnych z graficznym interfejsem użytkownika — wyłącza wyskakujące okienko dialogowe, które zwykle jest wyświetlane dla niektórych klas błędów. Zapisuje tylko w stderr
tych przypadkach i kończy działanie.
DOTNET_ADDITIONAL_DEPS
Odpowiednik opcji --additional-deps
interfejsu wiersza polecenia .
DOTNET_RUNTIME_ID
Zastępuje wykryty identyfikator RID.
DOTNET_SHARED_STORE
Lokalizacja "magazynu udostępnionego", do którego należy rozwiązanie zestawu w niektórych przypadkach.
DOTNET_STARTUP_HOOKS
Lista zestawów do załadowania i wykonania zaczepień startowych.
DOTNET_BUNDLE_EXTRACT_BASE_DIR
Określa katalog, do którego wyodrębniono aplikację z jednym plikiem przed jego wykonaniem.
Aby uzyskać więcej informacji, zobacz Pliki wykonywalne z jednym plikiem.
DOTNET_CLI_HOME
Określa lokalizację, w którą powinny być zapisywane pliki pomocnicze dla poleceń interfejsu wiersza polecenia platformy .NET. Na przykład:
- Ścieżki z możliwością zapisu użytkownika dla pakietów obciążeń, manifestów i innych danych pomocniczych.
- Pliki sentinel/lock pierwszego uruchomienia dla aspektów migracji i powiadomień interfejsu wiersza polecenia platformy .NET.
- Domyślna lokalizacja instalacji narzędzia lokalnego platformy .NET.
DOTNET_CLI_CONTEXT_*
DOTNET_CLI_CONTEXT_VERBOSE
: Aby włączyć pełny kontekst, ustaw wartośćtrue
.DOTNET_CLI_CONTEXT_ANSI_PASS_THRU
: Aby włączyć przekazywanie ANSI, ustaw wartośćtrue
.
DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE
Wyłącza pobieranie w tle manifestów reklamowych dla obciążeń. Wartość domyślna to false
— nie jest wyłączona. Jeśli ustawiono wartość true
, pobieranie jest wyłączone. Aby uzyskać więcej informacji, zobacz Manifesty reklamowe.
DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_INTERVAL_HOURS
Określa minimalną liczbę godzin między pobieraniem w tle manifestów reklamowych dla obciążeń. Wartość domyślna to 24
, która nie jest częściej niż raz dziennie. Aby uzyskać więcej informacji, zobacz Manifesty reklamowe.
DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
Określa, czy narzędzia lokalne zestawu .NET SDK wyszukują pliki manifestu narzędzi w folderze głównym w systemie Windows. Wartość domyślna to false
.
COREHOST_TRACE
Steruje śledzeniem diagnostyki z składników hostingu, takich jak dotnet.exe
, hostfxr
i hostpolicy
.
COREHOST_TRACE=[0/1]
- wartość domyślna to0
- śledzenie jest wyłączone. Jeśli ustawiono wartość1
, śledzenie diagnostyczne jest włączone.COREHOST_TRACEFILE=<file path>
- ma wpływ tylko wtedy, gdy śledzenie jest włączone przez ustawienieCOREHOST_TRACE=1
. Po ustawieniu informacje o śledzeniu są zapisywane w określonym pliku; w przeciwnym razie informacje śledzenia są zapisywane w plikustderr
.COREHOST_TRACE_VERBOSITY=[1/2/3/4]
— wartość domyślna to4
. To ustawienie jest używane tylko wtedy, gdy śledzenie jest włączone za pośrednictwem .COREHOST_TRACE=1
4
- wszystkie informacje o śledzeniu są zapisywane3
— zapisywane są tylko komunikaty informacyjne, ostrzegawcze i komunikaty o błędach2
— zapisywane są tylko komunikaty ostrzegawcze i komunikaty o błędach1
— zapisywane są tylko komunikaty o błędach
Typowym sposobem uzyskania szczegółowych informacji śledzenia dotyczących uruchamiania aplikacji jest ustawienie COREHOST_TRACE=1
, aCOREHOST_TRACEFILE=host_trace.txt
następnie uruchomienie aplikacji. Nowy plik host_trace.txt
zostanie utworzony w bieżącym katalogu ze szczegółowymi informacjami.
SuppressNETCoreSdkPreviewMessage
Jeśli jest ustawiona wartość true
, wywołanie dotnet
nie spowoduje wygenerowania ostrzeżenia, gdy jest używany zestaw SDK w wersji zapoznawczej.
Konfigurowanie programu MSBuild w interfejsie wiersza polecenia platformy .NET
Aby wykonać program MSBuild poza procesem, ustaw zmienną DOTNET_CLI_RUN_MSBUILD_OUTOFPROC
środowiskową na 1
, true
lub yes
. Domyślnie program MSBuild będzie wykonywany w proc. Aby wymusić używanie zewnętrznego procesu roboczego węzła roboczego do kompilowania projektów, ustaw wartość DOTNET_CLI_USE_MSBUILDNOINPROCNODE
1
, true
lub yes
. Spowoduje to ustawienie zmiennej środowiskowej MSBUILDNOINPROCNODE
na 1
, która jest określana jako MSBuild Server V1, ponieważ proces wprowadzania przekazuje większość pracy do niej.
DOTNET_MSBUILD_SDK_RESOLVER_*
Są to przesłonięcia, które są używane do wymuszania rozpoznanych zadań i obiektów docelowych zestawu SDK, które mają pochodzić z danego katalogu podstawowego i zgłaszają daną wersję do programu MSBuild, co może być null
nieznane. Jednym z kluczowych przypadków użycia jest przetestowanie zadań i obiektów docelowych zestawu SDK bez ich wdrażania przy użyciu zestawu .NET Core SDK.
DOTNET_MSBUILD_SDK_RESOLVER_SDKS_DIR
: zastępuje katalog zestawu .NET SDK.DOTNET_MSBUILD_SDK_RESOLVER_SDKS_VER
: zastępuje wersję zestawu .NET SDK.DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR
: zastępuje ścieżkę katalogu dotnet.exe .
DOTNET_NEW_PREFERRED_LANG
Konfiguruje domyślny język programowania dla dotnet new
polecenia, gdy -lang|--language
przełącznik zostanie pominięty. Domyślna wartość to C#
. Prawidłowe wartości to C#
, F#
lub VB
. Aby uzyskać więcej informacji, zobacz dotnet new.
dotnet watch
zmienne środowiskowe
Aby uzyskać informacje o dotnet watch
ustawieniach, które są dostępne jako zmienne środowiskowe, zobacz dotnet watch zmienne środowiskowe.