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 OutputTypeExe není a chcete kopírovat možnosti konfigurace z OutputType na Exe, musíte explicitně nastavit GenerateRuntimeConfigurationFiles na true 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

Viz také