A .NET-futtatókörnyezet konfigurációs beállításai
A .NET 5+ (beleértve a .NET Core-verziókat) támogatja a konfigurációs fájlok és környezeti változók használatát a .NET-alkalmazások futásidőben történő viselkedésének konfigurálásához.
Megjegyzés
A jelen szakaszban található cikkek a .NET-futtatókörnyezet konfigurálását érintik. Ha a .NET Core 3.1-re vagy újabb verzióra migrál, és a app.config fájl helyett keres helyettesítő megoldást, vagy ha egyszerűen csak egyéni konfigurációs értékeket szeretne használni a .NET-alkalmazásban, tekintse meg a Microsoft.Extensions.Configuration.ConfigurationBuilder .NET osztályát és konfigurációját.
Az alábbi beállítások használata vonzó lehetőség, ha:
- Az alkalmazás forráskódját nem Ön birtokolja vagy szabályozza, ezért nem tudja programozott módon konfigurálni.
- Az alkalmazás több példánya fut egyszerre egyetlen rendszeren, és ezeket az optimális teljesítmény érdekében szeretné konfigurálni.
A .NET a következő mechanizmusokat biztosítja a .NET-futtatókörnyezet viselkedésének konfigurálásához:
Tipp
Ha környezeti változóval konfigurál egy beállítást, az az összes .NET-alkalmazásra alkalmazza a beállítást. Ha a runtimeconfig.json fájlban vagy a projektfájlban konfigurál egy beállítást, az csak az adott alkalmazásra alkalmazza a beállítást.
Bizonyos konfigurációs értékek programozott módon is beállíthatók a AppContext.SetSwitch metódus meghívásával.
A dokumentáció jelen szakaszában található cikkek kategóriák szerint vannak rendezve, például hibakeresés és szemétgyűjtés szerint. Ahol alkalmazható, a runtimeconfig.json fájlok, az MSBuild tulajdonságok, a környezeti változók és a kereszthivatkozások esetében app.config fájlok .NET-keretrendszer projektekhez.
runtimeconfig.json
A projekt létrehozásakor a kimeneti könyvtárban létre fog hozni egy [appname].runtimeconfig.json fájlt. 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 be lesznek szúrva az [appname].runtimeconfig.json fájlba. Ha saját maga készíti el az alkalmazást, adja meg a konfigurációs beállításokat a runtimeconfig.template.json fájlban. Ha csak az alkalmazást futtatja, szúrja be őket közvetlenül az [appname].runtimeconfig.json fájlba.
Megjegyzés
- Az [appname].runtimeconfig.json fájl felül lesz írva a következő buildeken.
- Ha az alkalmazás
OutputType
nem az, és azt szeretné, hogy a konfigurációs beállításokat a runtimeconfig.template.json fájlból az [appname].runtimeconfig.json fájlba másolja, explicit módon be kell állítaniaGenerateRuntimeConfigurationFiles
true
a projektfájlbanExe
. 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 fájlok configProperties szakaszában. Ebben a szakaszban a következő űrlap található:
"configProperties": {
"config-property-name1": "config-value1",
"config-property-name2": "config-value2"
}
Példa : [appname].runtimeconfig.json fájl
Ha a kimeneti JSON-fájlba helyezi a beállításokat, ágyazhatja be őket a runtimeOptions
tulajdonság alá.
{
"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é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.GC.Concurrent": false,
"System.Threading.ThreadPool.MinThreads": "4",
"System.Threading.ThreadPool.MaxThreads": "25"
}
}
MSBuild tulajdonságok
A futtatókörnyezet egyes konfigurációs beállításai az SDK-stílusú .NET Core-projektek .csproj vagy .vbproj fájljában található MSBuild tulajdonságok használatával adhatók meg. Az MSBuild tulajdonságok elsőbbséget élveznek a runtimeconfig.template.json fájlban megadott beállítási lehetőségekkel szemben.
Íme egy példa SDK-stílusú projektfájl MSBuild tulajdonságokkal a futásidejű viselkedés konfigurálásához:
<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>
A futásidejű viselkedés konfigurálására szolgáló MSBuild tulajdonságokat az egyes területekre vonatkozó cikkek, például a szemétgyűjtés ismertetik. Ezek az SDK-stílusú projektek MSBuild tulajdonságokra vonatkozó referencia futásidejű konfigurációs szakaszában is szerepelnek.
Környezeti változók
A környezeti változók a futtatókörnyezet konfigurációs információinak megadására használhatók. A futásidejű beállítás környezeti változóval történő konfigurálása minden .NET Core-alkalmazásra alkalmazza a beállítást. A környezeti változókként megadott konfigurációs gombok általában DOTNET_ előtaggal rendelkeznek.
Megjegyzés
A .NET 6 szabványosítja az előtagot DOTNET_
a .NET futásidejű viselkedését konfiguráló környezeti változók helyett COMPlus_
. Az COMPlus_
előtag azonban továbbra is működni fog. Ha a .NET-futtatókörnyezet egy korábbi verzióját használja, akkor is használja az előtagot a COMPlus_
környezeti változókhoz.
Környezeti változókat definiálhat a Windows Vezérlőpult parancssorból, vagy programozott módon is, ha a metódust Environment.SetEnvironmentVariable(String, String) Windows és Unix-alapú rendszereken is meghívja.
Az alábbi példák bemutatják, hogyan állíthat be egy környezeti változót a parancssorban:
# Windows
set DOTNET_GCRetainVM=1
# Powershell
$env:DOTNET_GCRetainVM="1"
# Unix
export DOTNET_GCRetainVM=1