Nastavení konfigurace .NET runtime
.NET 5 + (včetně .NET Core verze) podporuje použití konfiguračních souborů a proměnných prostředí ke konfiguraci chování aplikací .NET v době běhu.
Poznámka
Články v této části se týkají konfigurace samotného modulu .NET Runtime. Pokud migrujete na rozhraní .NET Core 3,1 nebo novější a hledáte náhradní soubor app.config , nebo pokud chcete jednoduše použít vlastní hodnoty konfigurace v aplikaci .NET, přečtěte si téma Třída a konfigurace v rozhraní .NET.
Použití těchto nastavení je atraktivní možnost, pokud:
- Zdrojový kód aplikace nevlastníte nebo neovládáte, a proto ji nelze programově nakonfigurovat.
- V jednom systému se spouští více instancí aplikace současně a chcete je nakonfigurovat pro optimální výkon.
Rozhraní .NET poskytuje následující mechanismy pro konfiguraci chování modulu runtime .NET:
Tip
Konfigurace možnosti pomocí proměnné prostředí aplikuje nastavení na všechny aplikace .NET. Konfigurace možnosti v souboru runtimeconfig. JSON nebo projektu použije nastavení pouze pro tuto aplikaci.
Některé hodnoty konfigurace lze také nastavit programově voláním AppContext.SetSwitch metody.
Články v této části dokumentace jsou uspořádány podle kategorie, například ladění a uvolňování paměti. v případě potřeby se zobrazí možnosti konfigurace pro soubory runtimeconfig. json , vlastnosti MSBuild, proměnné prostředí a pro křížové odkazy app.config soubory pro .NET Framework projekty.
runtimeconfig. JSON
Při sestaveníprojektu se ve výstupním adresáři vygeneruje soubor [AppName]. runtimeconfig. JSON . Pokud soubor runtimeconfig. template. JSON existuje ve stejné složce jako soubor projektu, všechny možnosti konfigurace, které obsahuje, jsou vloženy do souboru [název_aplikace]. runtimeconfig. JSON . Pokud vytváříte aplikaci sami, vložte do souboru runtimeconfig. template. JSON všechny možnosti konfigurace. Pokud jste právě spustili aplikaci, vložte ji přímo do souboru [název_aplikace]. runtimeconfig. JSON .
Poznámka
- Soubor [AppName]. runtimeconfig. JSON se přepíše v následných sestaveních.
- Pokud vaše aplikace
OutputType
Exe
není a chcete kopírovat možnosti konfigurace zOutputType
naExe
, musíte explicitně nastavitGenerateRuntimeConfigurationFiles
natrue
v souboru projektu. Pro aplikace, které vyžadují soubor runtimeconfig. JSON , je tato vlastnost nastavená na výchozí hodnotu.
Zadejte možnosti konfigurace modulu runtime v části configProperties souborů runtimeconfig. JSON . Tato část obsahuje formulář:
"configProperties": {
"config-property-name1": "config-value1",
"config-property-name2": "config-value2"
}
Příklad souboru [AppName]. runtimeconfig. JSON
Pokud umístíte možnosti do výstupního souboru JSON, zanořit je runtimeOptions
do vlastnosti.
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "3.1.0"
},
"configProperties": {
"System.GC.Concurrent": false,
"System.Threading.ThreadPool.MinThreads": 4,
"System.Threading.ThreadPool.MaxThreads": 25
}
}
}
Příklad souboru runtimeconfig. template. JSON
Pokud umístíte možnosti do souboru JSON šablony, vynechejte runtimeOptions
vlastnost.
{
"configProperties": {
"System.GC.Concurrent": false,
"System.Threading.ThreadPool.MinThreads": "4",
"System.Threading.ThreadPool.MaxThreads": "25"
}
}
vlastnosti nástroje MSBuild
některé možnosti konfigurace modulu runtime lze nastavit pomocí MSBuild vlastností v souboru . csproj nebo . vbproj v projektech .net Core ve stylu sady SDK. vlastnosti MSBuild mají přednost před možnostmi nastavenými v souboru runtimeconfig. template. json .
zde je příklad souboru projektu ve stylu sady SDK s MSBuild vlastnostmi pro konfiguraci chování za běhu:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<PropertyGroup>
<ConcurrentGarbageCollection>false</ConcurrentGarbageCollection>
<ThreadPoolMinThreads>4</ThreadPoolMinThreads>
<ThreadPoolMaxThreads>25</ThreadPoolMaxThreads>
</PropertyGroup>
</Project>
MSBuild vlastnosti pro konfiguraci chování za běhu jsou uvedeny v jednotlivých článcích pro každou oblast, například uvolňování paměti. jsou uvedeny také v části konfigurace modulu Runtime v tématu referenční informace o vlastnostech MSBuild pro projekty ve stylu sady SDK.
Proměnné prostředí
Proměnné prostředí lze použít k poskytnutí některých informací o konfiguraci modulu runtime. Konfigurace možnosti modulu runtime pomocí proměnné prostředí použije nastavení pro všechny aplikace .NET Core. Konfigurační ovladače zadané jako proměnné prostředí mají obecně předponu DOTNET_.
Poznámka
Rozhraní .NET 6 se pro předponu DOTNET_
místo COMPlus_
pro proměnné prostředí, které konfigurují chování modulu .NET runtime, standardizace. COMPlus_
Předpona bude ale i nadále fungovat. Pokud používáte předchozí verzi modulu .NET runtime, měli byste i nadále používat COMPlus_
předponu pro proměnné prostředí.
můžete definovat proměnné prostředí z ovládacích panelů Windows, na příkazovém řádku nebo programově voláním Environment.SetEnvironmentVariable(String, String) metody v systémech založených na Windows a Unix.
Následující příklady ukazují, jak nastavit proměnnou prostředí na příkazovém řádku:
# Windows
set DOTNET_GCRetainVM=1
# Powershell
$env:DOTNET_GCRetainVM="1"
# Unix
export DOTNET_GCRetainVM=1