.NET-Umgebungsvariablen
Dieser Artikel gilt für: ✔️ .NET Core 3.1 SDK und höher
In diesem Artikel erfahren Sie mehr über die Umgebungsvariablen, die von .NET verwendet werden. Einige Umgebungsvariablen werden von der .NET-Runtime verwendet, während andere nur vom .NET SDK und der .NET-CLI verwendet werden. Einige Umgebungsvariablen werden von allen drei Komponenten verwendet.
.NET-Runtime-Umgebungsvariablen
DOTNET_SYSTEM_NET_HTTP_*
Es gibt mehrere globale Einstellungen für HTTP-Umgebungsvariablen:
DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION
- Gibt an, ob die Aktivitätsweitergabe des Diagnosehandlers für globale HTTP-Einstellungen aktiviert werden soll.
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT
- Wenn die Einstellung
false
oder0
ist, wird die standardmäßig aktivierte HTTP/2-Unterstützung deaktiviert.
- Wenn die Einstellung
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT
- Wenn die Einstellung
true
oder1
ist, wird die standardmäßig aktivierte HTTP/3-Unterstützung deaktiviert.
- Wenn die Einstellung
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING
- Wenn die Einstellung
false
oder0
ist, wird der Standardwert außer Kraft gesetzt und der HTTP/2-Algorithmus für die dynamische Fensterskalierung deaktiviert.
- Wenn die Einstellung
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE
- Der Standardwert ist 16 MB. Wurde der Wert außer Kraft gesetzt, darf die maximale Größe des Empfangsfensters des HTTP/2-Streams nicht kleiner als 65.535 sein.
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER
- Der Standardwert ist 1.0. Wurde der Wert außer Kraft gesetzt, führen höhere Werte zu einem kürzeren Fenster, aber langsameren Downloads. Darf nicht kleiner als 0 sein.
DOTNET_SYSTEM_GLOBALIZATION_*
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT
: Siehe Invarianten Modus einstellenDOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY
: Gibt an, ob nur vordefinierte Kulturen geladen werden sollen.DOTNET_SYSTEM_GLOBALIZATION_APPLOCALICU
: Gibt an, ob die app-local ICU (International Components of Unicode) verwendet werden soll. Weitere Informationen finden Sie unter App-local ICU.
Invarianten Modus einstellen
Anwendungen können den invarianten Modus auf eine der folgenden Arten aktivieren:
In der Projektdatei:
<PropertyGroup> <InvariantGlobalization>true</InvariantGlobalization> </PropertyGroup>
In der Datei runtimeconfig.json:
{ "runtimeOptions": { "configProperties": { "System.Globalization.Invariant": true } } }
Durch Einstellen des Werts der Umgebungsvariablen
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT
auftrue
oder1
.
Wichtig
Ein in der Projektdatei oder runtimeconfig.json festgelegter Wert hat eine höhere Priorität als die Umgebungsvariable.
Weitere Informationen finden sie unter Invarianter Globalisierungsmodus in .NET.
DOTNET_SYSTEM_GLOBALIZATION_USENLS
Dies gilt nur für Windows. Damit die Globalisierung NLS (National Language Support) verwendet, legen Sie DOTNET_SYSTEM_GLOBALIZATION_USENLS
auf true
oder 1
fest. Um NLS nicht zu verwenden, legen Sie DOTNET_SYSTEM_GLOBALIZATION_USENLS
entweder auf false
oder 0
fest.
DOTNET_SYSTEM_NET_SOCKETS_*
Dieser Abschnitt konzentriert sich auf zwei System.Net.Sockets
Umgebungsvariablen:
DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT
Socketfortsetzungen werden vom Ereignisthread an System.Threading.ThreadPool gesendet. Dadurch wird vermieden, dass Fortsetzungen die Ereignisbehandlung blockieren. Damit Fortsetzungen direkt im Ereignisthread ausgeführt werden können, legen Sie DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
auf 1
fest. Standardmäßig ist es deaktiviert.
Hinweis
Diese Einstellung kann die Leistung beeinträchtigen, wenn es aufwendige Arbeiten gibt, die den E/A-Thread länger als nötig beanspruchen. Führen Sie entsprechende Tests durch, um sicherzustellen, dass diese Einstellung die Leistung verbessert.
Mithilfe von TechEmpower-Benchmarks, die viele kleine Socketlese- und schreibvorgänge bei sehr hoher Auslastung generieren, kann eine einzelne Socket-Engine bis zu 30 x64- und acht Arm64-CPU-Kerne auslasten. Die große Mehrheit der Szenarien in echten Umgebungen generiert keine Auslastung in dieser Größe (Hunderttausende Anforderungen pro Sekunde), und ein einzelner Producer ist fast immer ausreichend. Um jedoch sicherzustellen, dass extreme Auslastungen verarbeitet werden können, können Sie DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT
verwenden, um den berechneten Wert außer Kraft zu setzen. Wird der berechnete Wert nicht außer Kraft gesetzt, wird folgender Wert verwendet:
- Wenn
DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
1
ist, wird der Wert Environment.ProcessorCount verwendet. - Wenn
DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
nicht1
ist, wird RuntimeInformation.ProcessArchitecture ausgewertet.- Im Falle von Arm oder Arm64 wird der Wert der Kerne pro Engine auf
8
festgelegt, andernfalls auf30
.
- Im Falle von Arm oder Arm64 wird der Wert der Kerne pro Engine auf
- Bei Verwendung der ermittelten Kerne pro Engine der Höchstwert von entweder
1
oder Environment.ProcessorCount über den Kernen pro Engine.
DOTNET_SYSTEM_NET_DISABLEIPV6
Dies hilft zu ermitteln, ob die IP Version 6 (IPv6) deaktiviert ist oder nicht. Wenn die Einstellung auf true
oder 1
lautet, ist IPv6 deaktiviert, sofern in System.AppContext nicht anders angegeben.
DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER
Sie können einen der folgenden Mechanismen verwenden, um einen Prozess für die Verwendung des älteren HttpClientHandler
zu konfigurieren:
Verwenden Sie im Code die Klasse AppContext
:
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
Switch AppContext
kann auch durch eine Konfigurationsdatei festgelegt werden. Weitere Informationen zum Konfigurieren von Switches finden Sie unter AppContext für Bibliotheksconsumer.
Dies kann auch über die Umgebungsvariable DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER
erreicht werden. Zum Deaktivieren legen Sie den Wert auf false
oder 0
fest.
Hinweis
Ab .NET 5 ist die Einstellung HttpClientHandler nicht mehr verfügbar.
DOTNET_Jit*
und DOTNET_GC*
Es gibt zwei belastungsbezogene Features für die JIT- und JIT-generierten GC-Informationen: JIT-Belastung und GC-Lochbelastung. Diese Features bieten während der Entwicklung eine Möglichkeit, Grenzfälle und Szenarien aus der „realen Praxis“ zu ermitteln, ohne komplexe Anwendungen entwickeln zu müssen. Die folgenden Umgebungsvariablen sind verfügbar:
DOTNET_JitStress
DOTNET_JitStressModeNamesOnly
DOTNET_GCStress
JIT-Belastung
JIT-Belastung kann auf verschiedene Weise aktiviert werden. Legen Sie DOTNET_JitStress
auf einen ganzzahligen Wert ungleich 0 fest, um basierend auf einem Hash des Methodennamens unterschiedliche Ebenen von JIT-Optimierungen zu generieren. Um alle Optimierungen anzuwenden, legen Sie z. B. DOTNET_JitStress=2
fest. Eine weitere Möglichkeit zum Aktivieren der JIT-Belastung ist das Festlegen von DOTNET_JitStressModeNamesOnly=1
und das anschließende Anfordern der Belastungsmodi (durch Leerzeichen getrennt) in der Variablen DOTNET_JitStressModeNames
.
Betrachten Sie beispielsweise Folgendes:
DOTNET_JitStressModeNames=STRESS_USE_CMOV STRESS_64RSLT_MUL STRESS_LCL_FLDS
GC-Lochbelastung
Das Aktivieren der GC-Lochbelastung führt dazu, dass GCs immer an bestimmten Stellen auftreten und dies hilft, GC-Löcher zu identifizieren. Die GC-Lochbelastung kann mithilfe der Umgebungsvariablen DOTNET_GCStress
aktiviert werden.
Weitere Informationen finden Sie unter Untersuchen von JIT und GC-Lochbelastung.
JIT-Speicherbarrieren
Der Code-Generator für Arm64 ermöglicht das Entfernen aller MemoryBarriers
-Anweisungen, indem DOTNET_JitNoMemoryBarriers
auf 1
festgelegt wird.
DOTNET_RUNNING_IN_CONTAINER
und DOTNET_RUNNING_IN_CONTAINERS
Die offiziellen .NET-Images (Windows und Linux) legen die bekannten Umgebungsvariablen fest:
DOTNET_RUNNING_IN_CONTAINER
DOTNET_RUNNING_IN_CONTAINERS
Diese Werte werden verwendet, um zu bestimmen, wann Ihre ASP.NET Core-Workloads im Kontext eines Containers ausgeführt werden.
DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION
Wenn Console.IsOutputRedirectedtrue
ist, können Sie ANSI-Farbcode ausgeben, indem Sie DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION
auf 1
oder true
festlegen.
DOTNET_SYSTEM_DIAGNOSTICS
und zugehörige Variablen
DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL
: Bei1
odertrue
ist das standardmäßige Format der Aktivitäts-ID hierarchisch.DOTNET_SYSTEM_RUNTIME_CACHING_TRACING
: Bei der Ausführung als Debug kann die Ablaufverfolgung aktiviert werden, wenn diesetrue
ist.
DOTNET_DiagnosticPorts
Konfiguriert alternative Endpunkte, bei denen Diagnosetools mit der .NET-Runtime kommunizieren können. Weitere Informationen finden Sie in der Dokumentation zum Diagnoseport.
DOTNET_DefaultDiagnosticPortSuspend
Konfiguriert die Runtime so, dass sie beim Start angehalten wird und auf den Befehl Diagnostics IPC ResumeStartup vom angegebenen Diagnoseport wartet, sofern auf 1 festgelegt. Der Standardwert ist 0. Weitere Informationen finden Sie in der Dokumentation zum Diagnoseport.
DOTNET_EnableDiagnostics
Wenn diese Einstellung auf 0
festgelegt ist, werden das Debuggen, die Profilerstellung und andere Diagnosen über den Diagnoseport deaktiviert und können von anderen Diagnoseeinstellungen nicht außer Kraft gesetzt werden. Wird standardmäßig auf 1
festgelegt.
DOTNET_EnableDiagnostics_IPC
Ab .NET 8 wird beim Festlegen von 0
der Diagnoseport deaktiviert und kann nicht von anderen Diagnoseeinstellungen außer Kraft gesetzt werden. Wird standardmäßig auf 1
festgelegt.
DOTNET_EnableDiagnostics_Debugger
Ab .NET 8 wird beim Festlegen von 0
das Debuggen deaktiviert und kann nicht von anderen Diagnoseeinstellungen außer Kraft gesetzt werden. Wird standardmäßig auf 1
festgelegt.
DOTNET_EnableDiagnostics_Profiler
Ab .NET 8 wird beim Festlegen von 0
die Profilerstellung deaktiviert und kann nicht von anderen Diagnoseeinstellungen außer Kraft gesetzt werden. Wird standardmäßig auf 1
festgelegt.
EventPipe-Variablen
Weitere Informationen finden Sie unter EventPipe-Umgebungsvariablen.
DOTNET_EnableEventPipe
: aktiviert bei Festlegung auf1
die Ablaufverfolgung über EventPipe.DOTNET_EventPipeOutputPath
: der Ausgabepfad, in den die Ablaufverfolgung geschrieben wird.DOTNET_EventPipeOutputStreaming
: aktiviert bei Festlegung auf1
das Streaming in die Ausgabedatei, während die App ausgeführt wird. Standardmäßig werden Ablaufverfolgungsinformationen in einem Kreispuffer gesammelt, und der Inhalt wird beim Herunterfahren der App geschrieben.
.NET SDK- und CLI-Umgebungsvariablen
DOTNET_ROOT
, , DOTNET_ROOT(x86)
DOTNET_ROOT_X86
DOTNET_ROOT_X64
Gibt den Speicherort der .NET-Runtimes an, wenn sie nicht am Standardspeicherort installiert sind. Der Standardspeicherort unter Windows ist C:\Program Files\dotnet
. Der Standardspeicherort unter macOS ist /usr/local/share/dotnet
. Der Standardspeicherort für die x64-Runtimes auf einem arm64-Betriebssystem befindet sich unter einem x64-Unterordner (also C:\Program Files\dotnet\x64
unter Windows und /usr/local/share/dotnet/x64
unter macOS). Der Standardspeicherort unter Linux variiert je nach Distribution und Installationsmethode. Der Standardspeicherort in Ubuntu 22.04 ist /usr/share/dotnet
(bei Installation von packages.microsoft.com
) oder /usr/lib/dotnet
(bei Installation über Jammy-Feed). Weitere Informationen finden Sie in den folgenden Ressourcen:
- Behandeln von App-Startfehlern
- GitHub issue dotnet/core#7699
- GitHub issue dotnet/runtime#79237
Diese Umgebungsvariable wird nur beim Ausführen von Anwendungen über generierte ausführbare Dateien (Apphosts) verwendet. DOTNET_ROOT(x86)
wird stattdessen verwendet, wenn eine ausführbare 32-Bit-Datei auf einem 64-Bit-Betriebssystem ausgeführt wird. DOTNET_ROOT_X64
wird stattdessen verwendet, wenn eine 64-Bit-Ausführbare Datei auf einem ARM64-Betriebssystem ausgeführt wird.
DOTNET_HOST_PATH
Gibt den absoluten Pfad zu einem dotnet
-Host (dotnet.exe
unter Windows, dotnet
unter Linux und macOS) an, der zum Starten des derzeit ausgeführten dotnet
-Prozesses verwendet wurde. Dies wird vom .NET SDK verwendet, um Tools zu unterstützen, die während .NET SDK-Befehlen ausgeführt werden, um sicherzustellen, dass sie dieselbe dotnet
-Runtime für alle untergeordneten dotnet
-Prozesse verwenden, die sie für die Dauer des Befehls erstellen. Tools und MSBuild-Aufgaben im SDK, die Binärdateien über den dotnet
-Host aufrufen, berücksichtigen diese Umgebungsvariable, um eine konsistente Benutzererfahrung sicherzustellen.
Tools, die dotnet
während eines SDK-Befehls aufrufen, sollten den folgenden Algorithmus verwenden, um es zu finden:
- wenn
DOTNET_HOST_PATH
festgelegt ist, verwenden Sie diesen Wert direkt - verlassen Sie sich andernfalls auf
dotnet
über diePATH
-Umgebungsvariable des Systems
Hinweis
Die DOTNET_HOST_PATH
-Umgebungsvariable ist keine allgemeine Lösung zum Auffinden des dotnet
-Hosts. Sie soll nur von Tools verwendet werden, die vom .NET SDK aufgerufen werden.
DOTNET_LAUNCH_PROFILE
Mit dem Befehl dotnet run wird diese Variable auf das ausgewählte Startprofil festgelegt.
Angesichts der folgenden Datei launchSettings.json:
{
"profiles": {
"First": {
"commandName": "Project",
},
"Second": {
"commandName": "Project",
}
}
}
Und der folgenden Datei Program.cs:
var value = Environment.GetEnvironmentVariable("DOTNET_LAUNCH_PROFILE");
Console.WriteLine($"DOTNET_LAUNCH_PROFILE={value}");
Erzeugen die folgenden Szenarien die gezeigte Ausgabe:
Startprofil angegeben und vorhanden
$ dotnet run --launch-profile First DOTNET_LAUNCH_PROFILE=First
Startprofil nicht angegeben, das erste wird ausgewählt
$ dotnet run DOTNET_LAUNCH_PROFILE=First
Startprofil angegeben, aber nicht vorhanden
$ 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=
Ohne Profil starten
$ dotnet run --no-launch-profile DOTNET_LAUNCH_PROFILE=
NUGET_PACKAGES
Der Ordner für globale Pakete. Wenn er nicht festgelegt wird, wird standardmäßig ~/.nuget/packages
unter Unix oder %userprofile%\.nuget\packages
unter Windows verwendet.
DOTNET_SERVICING
Gibt den Speicherort des Wartungsindex an, der vom freigegebenen Host verwendet wird, wenn die Laufzeit geladen wird.
DOTNET_NOLOGO
Gibt an, ob bei der ersten Ausführung .NET-Willkommens- und -Telemetriemeldungen angezeigt werden. Bei Festlegung auf true
werden diese Meldungen unterdrückt (akzeptierte Werte: true
, 1
oder yes
), bei Festlegung auf false
werden die Meldungen zugelassen (akzeptierte Werte: false
, 0
oder no
). Sofern dies nicht so festgelegt wurde, lautet der Standardwert false
und die Meldungen werden bei der ersten Ausführung angezeigt. Dieses Flag hat keine Auswirkung auf die Telemetrie (siehe DOTNET_CLI_TELEMETRY_OPTOUT
zum Deaktivieren der Übermittlung von Telemetriedaten).
DOTNET_CLI_PERF_LOG
Gibt an, ob Leistungsdetails zur aktuellen CLI-Sitzung protokolliert werden. Aktiviert, wenn 1
, true
oder yes
festgelegt sind. Diese Einstellung ist standardmäßig deaktiviert.
DOTNET_GENERATE_ASPNET_CERTIFICATE
Gibt an, ob ein ASP.NET Core-Zertifikat erstellt werden soll. Der Standardwert ist true
. Dieser kann jedoch außer Kraft gesetzt werden, indem diese Umgebungsvariable entweder auf 0
, false
oder no
festgelegt wird.
DOTNET_ADD_GLOBAL_TOOLS_TO_PATH
Gibt an, ob der Umgebungsvariablen PATH
globale Tools hinzugefügt werden. Der Standardwert ist true
. Um dem Pfad keine globalen Tools hinzuzufügen, legen Sie 0
, false
oder no
fest.
DOTNET_CLI_TELEMETRY_OPTOUT
Gibt an, ob Daten zur Nutzung von .NET-Tools gesammelt und an Microsoft gesendet werden. Legen Sie true
fest, um die Telemetriefunktion zu deaktivieren (Wert true
, 1
oder yes
wird akzeptiert). Legen Sie andernfalls fest, dass false
Sie sich für die Telemetriefeatures (Wertefalse
0
, oder no
akzeptiert) anmelden möchten. Ohne Festlegung ist der Standardwert false
, und die Telemetriefunktion ist aktiviert.
DOTNET_SKIP_FIRST_TIME_EXPERIENCE
Wenn DOTNET_SKIP_FIRST_TIME_EXPERIENCE
auf true
festgelegt ist, wird der NuGetFallbackFolder
nicht auf den Datenträger erweitert, und es werden eine kürzere Begrüßungsnachricht und ein kürzerer Telemetriehinweis angezeigt.
Hinweis
Diese Umgebungsvariable wird in .NET Core 3.0 und höher nicht mehr unterstützt.
Verwenden Sie stattdessen DOTNET_NOLOGO
.
DOTNET_MULTILEVEL_LOOKUP
Gibt an, ob die .NET-Runtime, das freigegebene Framework oder das SDK am globalen Speicherort aufgelöst werden. Ohne Festlegung ist der Standardwert 1 (logisch true
). Legen Sie den Wert auf 0 (logisch false
) fest, damit keine Auflösung am globalen Speicherort erfolgt und isolierte .NET-Installationen verwendet werden. Weitere Informationen zu Lookup mit mehreren Ebenen finden Sie unter Multi-level SharedFX lookup (SharedFX-Lookup mit mehreren Ebenen).
Hinweis
Diese Umgebungsvariable gilt nur für Anwendungen für .NET 6 und frühere Versionen. Ab .NET 7 sucht .NET nur an einem Speicherort nach Frameworks. Weitere Informationen finden Sie unter Suche mit mehreren Ebenen ist deaktiviert.
DOTNET_ROLL_FORWARD
Bestimmt das Rollforwardverhalten. Weitere Informationen finden Sie unter Die Option --roll-forward
für den Befehl dotnet
.
DOTNET_ROLL_FORWARD_TO_PRERELEASE
Wenn diese Option auf 1
(aktiviert) festgelegt ist, wird das Rollforward von einer endgültigen Produktversion zu einer Vorabversion aktiviert. Wenn eine endgültige Releaseversion der .NET-Runtime angefordert wird, werden standardmäßig (0
– deaktiviert) nur installierte endgültige Releaseversionen beim Rollforward berücksichtigt.
Weitere Informationen finden Sie unter Die Option --roll-forward
für den Befehl dotnet
.
DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX
Deaktiviert Rollforward der Nebenversion, wenn 0
festgelegt ist. Diese Einstellung wird in .NET Core 3.0 durch DOTNET_ROLL_FORWARD
abgelöst. Stattdessen sollten die neuen Einstellungen verwendet werden.
DOTNET_CLI_FORCE_UTF8_ENCODING
Erzwingt die Verwendung der UTF-8-Codierung in der Konsole, auch für ältere Versionen von Windows 10, die UTF-8 nicht vollständig unterstützen. Weitere Informationen finden Sie unter SDK no longer changes console encoding after completion (Das SDK ändert die Konsolencodierung nach Abschluss nicht mehr.).
DOTNET_CLI_UI_LANGUAGE
Legt die Sprache der CLI-Benutzeroberfläche mit einem Gebietsschemawert wie en-us
fest. Die unterstützten Werte sind identisch mit denen für Visual Studio. Weitere Informationen finden Sie im Abschnitt zum Ändern der Sprache des Installationsprogramms in der Visual Studio-Installationsdokumentation. Es gelten die Regeln des .NET-Ressourcen-Managers, sodass Sie keine genaue Übereinstimmung auswählen müssen, sondern auch Nachfolger in der CultureInfo
-Struktur auswählen können. Bei einer Festlegung auf fr-CA
findet und verwendet die Befehlszeilenschnittstelle z. B. die fr
-Übersetzungen. Wenn Sie eine nicht unterstützte Sprache festlegen, greift die Befehlszeilenschnittstelle auf Englisch zurück.
DOTNET_DISABLE_GUI_ERRORS
Für generierte ausführbare Dateien mit aktivierter Benutzeroberfläche – deaktiviert das Dialogfeld-Popupfenster, das normalerweise bei bestimmten Fehlerklassen angezeigt wird. Es schreibt nur an stderr
und beendet sich nur in diesen Fällen.
DOTNET_ADDITIONAL_DEPS
Entspricht der CLI-Option --additional-deps
.
DOTNET_RUNTIME_ID
Setzt die erkannte RID außer Kraft.
DOTNET_SHARED_STORE
Speicherort des „gemeinsamen Speichers“, auf den die Assemblyauflösung in einigen Fällen zurückgreift.
DOTNET_STARTUP_HOOKS
Liste der Assemblys zum Laden und Ausführen von Startuphooks.
DOTNET_BUNDLE_EXTRACT_BASE_DIR
Gibt ein Verzeichnis an, in das eine Einzeldateianwendung vor der Ausführung extrahiert wird.
Weitere Informationen finden Sie unter Ausführbare Einzeldateien.
DOTNET_CLI_HOME
Gibt den Speicherort an, in den unterstützende Dateien für .NET CLI-Befehle geschrieben werden sollen. Zum Beispiel:
- Beschreibbare Pfade für Workload Packs, Manifeste und andere unterstützende Daten.
- First-run sentinel/lock files for aspects of the .NET CLI's first-run migration and notification experiences.
- Der standardmäßige Installationsspeicherort des lokalen .NET-Tools.
DOTNET_CLI_CONTEXT_*
DOTNET_CLI_CONTEXT_VERBOSE
: Um einen ausführlichen Kontext zu aktivieren, legen Sie die Einstellung auftrue
fest.DOTNET_CLI_CONTEXT_ANSI_PASS_THRU
: Um einen ANSI-Passthrough zu aktivieren, legen Sie die Einstellung auftrue
fest.
DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE
Diese Variable deaktiviert Downloads von Ankündigungsmanifesten im Hintergrund für Workloads. Der Standardwert lautet false
(nicht deaktiviert). Ist die Variable auf true
festgelegt, sind Downloads deaktiviert. Weitere Informationen finden Sie unter Ankündigungsmanifeste.
DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_INTERVAL_HOURS
Diese Variable gibt die Mindestanzahl an Stunden an, die zwischen Downloads von Ankündigungsmanifesten im Hintergrund für Workloads liegen müssen. Der Standardwert ist 24
, was nicht häufiger als einmal pro Tag ist. Weitere Informationen finden Sie unter Ankündigungsmanifeste.
DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
Gibt an, ob lokale .NET SDK-Tools im Stammordner unter Windows nach Toolmanifestdateien suchen. Der Standardwert ist false
.
COREHOST_TRACE
Steuert die Diagnoseablaufverfolgung von den Hostingkomponenten wie dotnet.exe
, hostfxr
und hostpolicy
.
COREHOST_TRACE=[0/1]
– Standardwert ist0
– Ablaufverfolgung deaktiviert. Wenn auf1
festgelegt, ist die Diagnoseablaufverfolgung aktiviert.COREHOST_TRACEFILE=<file path>
– hat nur dann Auswirkungen, wenn die Ablaufverfolgung durch Festlegen vonCOREHOST_TRACE=1
aktiviert wird. Wurde dies so festgelegt, werden die Ablaufverfolgungsinformationen in die angegebene Datei geschrieben, andernfalls instderr
.COREHOST_TRACE_VERBOSITY=[1/2/3/4]
– Standardwert ist4
. Die Einstellung wird nur verwendet, wenn die Ablaufverfolgung überCOREHOST_TRACE=1
aktiviert wird.4
– alle Ablaufverfolgungsinformationen werden geschrieben3
– nur Informationen, Warn- und Fehlermeldungen werden geschrieben2
– nur Warn- und Fehlermeldungen werden geschrieben1
– nur Fehlermeldungen werden geschrieben
Die übliche Methode, ausführliche Ablaufverfolgungsinformationen zum Start der Anwendung zu erhalten, besteht darin, vor der Ausführung der Anwendung COREHOST_TRACE=1
und COREHOST_TRACEFILE=host_trace.txt
festzulegen. Im aktuellen Verzeichnis wird eine neue Datei host_trace.txt
mit detaillierten Informationen erstellt.
SuppressNETCoreSdkPreviewMessage
Bei Festlegung auf true
wird beim Aufrufen von dotnet
keine Warnung angezeigt, wenn ein Vorschau-SDK verwendet wird.
Konfigurieren von MSBuild in der .NET CLI
Um den MSBuild prozessextern (Out-of-Process) auszuführen, legen Sie die Umgebungsvariable DOTNET_CLI_RUN_MSBUILD_OUTOFPROC
entweder auf 1
, true
oder yes
fest. Standardmäßig wird MSBuild prozessintern (In-Process) ausgeführt. Um zu erzwingen, dass MSBuild einen externen, langlebigen Arbeitsknotenprozess zum Erstellen von Projekten verwendet, legen Sie DOTNET_CLI_USE_MSBUILDNOINPROCNODE
auf 1
, true
oder yes
fest. Dadurch wird die Umgebungsvariable MSBUILDNOINPROCNODE
auf 1
festgelegt (bezeichnet als MSBuild Server V1), da der Eingabeprozess den größten Teil der Arbeit an diese weiterreicht.
DOTNET_MSBUILD_SDK_RESOLVER_*
Hierbei handelt es sich um Außerkraftsetzungen, die dazu verwendet werden, zu erzwingen, dass die aufgelösten SDK-Aufgaben und -Ziele aus einem bestimmten Basisverzeichnis stammen und eine bestimmte Version an MSBuild melden, was - falls unbekannt - möglicherweise null
ist. Ein wichtiger Anwendungsfall dafür ist das Testen von SDK-Aufgaben und -Zielen, ohne sie mithilfe der .NET Core SDK bereitzustellen.
DOTNET_MSBUILD_SDK_RESOLVER_SDKS_DIR
: Setzt das .NET SDK-Verzeichnis außer Kraft.DOTNET_MSBUILD_SDK_RESOLVER_SDKS_VER
: Setzt die .NET SDK-Version außer Kraft.DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR
: Setzt den dotnet.exe-Verzeichnispfad außer Kraft.
DOTNET_NEW_PREFERRED_LANG
Konfiguriert die Standardprogrammiersprache für den Befehl dotnet new
, wenn der Switch -lang|--language
ausgelassen wird. Standardwert: C#
. Gültige Werte sind C#
, F#
oder VB
. Weitere Informationen finden Sie unter dotnet new.
dotnet watch
-Umgebungsvariablen
Informationen zu dotnet watch
-Einstellungen, die als Umgebungsvariablen verfügbar sind, finden Sie unter dotnet watch-Umgebungsvariablen.