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. Konfigurace modulu runtime 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.

Poznámka

Tato dokumentace je probíhající práce. Pokud si všimnete, že zde uvedené informace jsou buď neúplné, nebo nepřesné, buď otevřete problém , abychom nás věděli, nebo odešlete žádost o přijetí změn k vyřešení problému. Informace o odesílání žádostí o přijetí změn pro úložiště dotnet/docs najdete v příručce pro přispěvatele.

Rozhraní .NET poskytuje následující mechanismy pro konfiguraci chování aplikace v době běhu:

Tip

Konfigurace možnosti modulu runtime pomocí proměnné prostředí použije nastavení na všechny aplikace .NET. Při konfiguraci možnosti modulu runtime v souboru runtimeconfig. JSON nebo projektu se použije nastavení jenom 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 není OutputType Exe a chcete kopírovat možnosti konfigurace z runtimeconfig. template. JSON na [AppName]. runtimeconfig. JSON, 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 true .

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 do runtimeOptions 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

.NET 6 standardizuje předponu místo pro proměnné prostředí, DOTNET_ které konfiguruje chování za běhu COMPlus_ .NET. Předpona COMPlus_ ale bude i nadále fungovat. Pokud používáte předchozí verzi modulu runtime .NET, měli byste i nadále COMPlus_ používat 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é