Megosztás:


.NET-futtatókörnyezet konfigurációs beállításai

A .NET a következő mechanizmusokat biztosítja a .NET-futtatókörnyezet viselkedésének konfigurálásához:

Mechanizmus Jegyzetek
A runtimeconfig.json fájl A beállítást egy adott alkalmazásra alkalmazza. Ezt a fájlt akkor használja, ha az alkalmazás több példánya fut egyszerre egyetlen rendszeren, és mindegyiket az optimális teljesítmény érdekében szeretné konfigurálni.
MSBuild tulajdonságok A beállítást egy adott alkalmazásra alkalmazza. Az MSBuild tulajdonságok elsőbbséget élveznek aruntimeconfig.jsonbeállításaival szemben.
Környezeti változók Alkalmazza a beállítást az összes .NET-alkalmazásra. A .NET 9-től kezdve a környezeti változók elsőbbséget élveznek az MSBuild tulajdonságokkal és runtimeconfig.json beállításokkal szemben. További információ: A környezeti változók elsőbbséget élveznek az alkalmazás futtatókörnyezetének konfigurációs beállításai között.

Bizonyos konfigurációs értékek programozott módon is beállíthatók a AppContext.SetSwitch metódus meghívásával.

Megjegyzés:

Az ebben a szakaszban található cikkek a .NET-futtatókörnyezet konfigurálását érintik. Ha .NET-keretrendszerből .NET-keretrendszerbe migrál egy alkalmazást, és a app.config fájl cseréjét keresi, olvassa el a Modernizálás a .NET-re való frissítés után című témakört. Az egyéni konfigurációs értékek .NET-alkalmazásoknak való megadásáról a .NET-alkalmazások konfigurációja című témakörben olvashat.

A dokumentáció jelen szakaszában található cikkek kategóriák szerint vannak rendszerezve, például hibakeresés és szemétgyűjtés szerint. Szükség esetén a konfigurációs beállítások a következőkhöz vannak megadva: runtimeconfig.json fájlok, MSBuild-tulajdonságok, környezeti változók, és kereszthivatkozás céljából app.config fájlok a .NET-keretrendszer-projektekhez.

runtimeconfig.json

Projekt létrehozásakor [ appname].runtimeconfig.json fájl jön létre a kimeneti könyvtárban. Ha egy runtimeconfig.template.json fájl ugyanabban a mappában található, mint a projektfájl, a benne található konfigurációs beállítások az [alkalmazásnév].runtimeconfig.json fájlba lesznek beszúrva. Ha saját maga készíti el az alkalmazást, tegye a konfigurációs beállításokat a runtimeconfig.template.json fájlba. Ha csak az alkalmazást futtatja, szúrja be közvetlenül az [alkalmazásnév].runtimeconfig.json fájlba.

Megjegyzés:

  • Az [alkalmazásnév].runtimeconfig.json fájl felülíródik a későbbi buildeken.
  • Ha az alkalmazás nem OutputTypeExe , és azt szeretné, hogy a konfigurációs opciók átmásolásra kerüljenek runtimeconfig.template.json az [alkalmazásnév].runtimeconfig.json, kifejezetten be kell állítania GenerateRuntimeConfigurationFiles-t true-ra a projektfájlban. A runtimeconfig.json fájlt igénylő alkalmazások esetében ez a tulajdonság alapértelmezés szerint a következő.true

Adja meg a futtatókörnyezet konfigurációs beállításait a runtimeconfig.json vagy runtimeconfig.template.json fájl configProperties szakaszában. Ez a szakasz a következő formátumú:

"configProperties": {
  "config-property-name1": "config-value1",
  "config-property-name2": "config-value2"
}

Példa [appname].runtimeconfig.json fájl

Ha a beállításokat a kimeneti JSON-fájlban helyezi el, ágyazhatja be őket a runtimeOptions tulajdonság alá.

{
  "runtimeOptions": {
    "tfm": "net8.0",
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "8.0.0"
    },
    "configProperties": {
      "System.Globalization.UseNls": true,
      "System.Net.DisableIPv6": true,
      "System.GC.Concurrent": false,
      "System.Threading.ThreadPool.MinThreads": 4,
      "System.Threading.ThreadPool.MaxThreads": 25
    }
  }
}

Példa runtimeconfig.template.json fájlra

Ha a beállításokat a sablon JSON-fájljában helyezi el, hagyja ki a tulajdonságot runtimeOptions .

{
  "configProperties": {
    "System.Globalization.UseNls": true,
    "System.Net.DisableIPv6": true,
    "System.GC.Concurrent": false,
    "System.Threading.ThreadPool.MinThreads": "4",
    "System.Threading.ThreadPool.MaxThreads": "25"
  }
}

MSBuild tulajdonságok

Bizonyos futtatókörnyezet-konfigurációs beállítások az SDK-stílusú .NET-projektek .csproj - vagy .vbproj-fájljának MSBuild tulajdonságaival állíthatók be. Az MSBuild tulajdonságok elsőbbséget élveznek a runtimeconfig.template.json fájlban megadott beállításnál.

Az olyan futtatókörnyezeti konfigurációs beállításokhoz, amelyek nem rendelkeznek adott MSBuild tulajdonságokkal, használhatja helyette az RuntimeHostConfigurationOption MSBuild elemet. Az attribútum értékeként használja a Include beállításnevet.

Íme egy példa SDK-stílusú projektfájl msBuild tulajdonságokkal a .NET-futtatókörnyezet viselkedésének konfigurálásához:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
  </PropertyGroup>

  <PropertyGroup>
    <ConcurrentGarbageCollection>false</ConcurrentGarbageCollection>
    <ThreadPoolMinThreads>4</ThreadPoolMinThreads>
    <ThreadPoolMaxThreads>25</ThreadPoolMaxThreads>
  </PropertyGroup>

  <ItemGroup>
    <RuntimeHostConfigurationOption Include="System.Globalization.UseNls" Value="true" />
    <RuntimeHostConfigurationOption Include="System.Net.DisableIPv6" Value="true" />
  </ItemGroup>

</Project>

Az MSBuild tulajdonság a futtatókörnyezet viselkedésének konfigurálásához az egyes területekre vonatkozó cikkekben, például a szemétgyűjtésben szerepel. Az MSBuild tulajdonságokra vonatkozó referencia futásidejű konfigurációs szakaszában is szerepelnek az SDK-stílusú projektekhez.

Környezeti változók

A környezeti változók felhasználhatók a futtatókörnyezet konfigurációs adatainak megadására. A környezeti változókként megadott konfigurációs gombok általában az előtaggal DOTNET_rendelkeznek. (A .NET-keretrendszer futtatókörnyezetének konfigurációjához használja helyette az COMPlus_ előtagot.)

Megjegyzés:

A .NET 9-től kezdve a környezeti változók elsőbbséget élveznek az MSBuild tulajdonságokkal és runtimeconfig.json beállításokkal szemben. A kompatibilitástörő változással kapcsolatos további információkért lásd: A környezeti változók elsőbbséget élveznek az alkalmazás futtatókörnyezetének konfigurációs beállításai között.

A környezeti változókat a Windows vezérlőpultjáról, a parancssorból, vagy programozott módon is definiálhatja a Environment.SetEnvironmentVariable(String, String) windowsos és Unix-alapú rendszereken.

Az alábbi példák azt mutatják be, hogyan állíthat be környezeti változót a parancssorban:

# Windows
set DOTNET_GCRetainVM=1

# Powershell
$env:DOTNET_GCRetainVM="1"

# Unix
export DOTNET_GCRetainVM=1

Lásd még