Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
.NET offre i meccanismi seguenti per la configurazione del comportamento del runtime .NET:
| Meccanismo | Note |
|---|---|
| Il fileruntimeconfig.json | Applica l'impostazione a un'app specifica. Usa questo file se più istanze dell'app vengono eseguite contemporaneamente in un singolo sistema e vuoi configurare ognuna per ottenere prestazioni ottimali. |
| proprietà MSBuild | Applica l'impostazione a un'app specifica. Le proprietà di MSBuild hanno la precedenza sulle impostazioni in runtimeconfig.json. |
| Variabili di ambiente | Applica l'impostazione a tutte le app .NET. |
Alcuni valori di configurazione possono essere impostati anche a livello di codice chiamando il AppContext.SetSwitch metodo .
Annotazioni
Gli articoli in questa sezione riguardano la configurazione del runtime .NET stesso. Se si esegue la migrazione di un'app da .NET Framework a .NET e si sta cercando una sostituzione del file app.config , vedere Modernizzare dopo l'aggiornamento a .NET. Per informazioni sulla fornitura di valori di configurazione personalizzati alle app .NET, vedere Configurazione in .NET.
Gli articoli in questa sezione della documentazione sono organizzati per categoria, ad esempio debug e Garbage Collection. Se applicabile, vengono visualizzate le opzioni di configurazione per i file runtimeconfig.json, le proprietà di MSBuild, le variabili di ambiente e, per riferimento incrociato, i file app.config per i progetti .NET Framework.
runtimeconfig.json
Quando viene compilato un progetto, viene generato un file [appname].runtimeconfig.json nella directory di output. Se esiste un fileruntimeconfig.template.json nella stessa cartella del file di progetto, tutte le opzioni di configurazione contenute vengono inserite nel file [nomeapp].runtimeconfig.json . Se si compila l'app manualmente, inserire le opzioni di configurazione nel file runtimeconfig.template.json . Se stai semplicemente eseguendo l'app, inseriscili direttamente nel file [nomeapp].runtimeconfig.json .
Annotazioni
- Il file [appname].runtimeconfig.json verrà sovrascritto nelle build successive.
- Se il
OutputTypedell'app non èExee si desidera che le opzioni di configurazione vengano copiate da runtimeconfig.template.json a [nomeapp].runtimeconfig.json, è necessario impostareGenerateRuntimeConfigurationFilessutruenel file di progetto. Per le app che richiedono un file runtimeconfig.json , per impostazione predefinita questa proprietà ètrue.
Specificare le opzioni di configurazione di runtime nella sezione configProperties del fileruntimeconfig.json o runtimeconfig.template.json . Questa sezione presenta il formato seguente:
"configProperties": {
"config-property-name1": "config-value1",
"config-property-name2": "config-value2"
}
Esempio [nomeapp].runtimeconfig.json file
Se si inseriscono le opzioni nel file JSON di output, annidarle sotto la proprietà runtimeOptions.
{
"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
}
}
}
Esempio di file runtimeconfig.template.json
Se si inserisce le opzioni nel file JSON del modello , omettere la runtimeOptions proprietà .
{
"configProperties": {
"System.Globalization.UseNls": true,
"System.Net.DisableIPv6": true,
"System.GC.Concurrent": false,
"System.Threading.ThreadPool.MinThreads": "4",
"System.Threading.ThreadPool.MaxThreads": "25"
}
}
Proprietà di MSBuild
È possibile impostare alcune opzioni di configurazione di runtime usando le proprietà MSBuild nel file con estensione csproj o vbproj di progetti .NET di tipo SDK. Le proprietà di MSBuild hanno la precedenza sulle opzioni impostate nel file runtimeconfig.template.json .
Per le impostazioni di configurazione di runtime che non dispongono di una proprietà MSBuild specifica, è invece possibile usare l'elemento RuntimeHostConfigurationOption MSBuild. Usare il nome dell'impostazione runtimeconfig.json come valore dell'attributo Include.
Di seguito è riportato un file di progetto di tipo SDK di esempio con proprietà MSBuild per la configurazione del comportamento del runtime .NET:
<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>
Le proprietà di MSBuild per la configurazione del comportamento del runtime sono indicate nei singoli articoli per ogni area, ad esempio Garbage Collection. Sono elencati anche nella sezione Configurazione di runtime delle informazioni di riferimento sulle proprietà di MSBuild per i progetti in stile SDK.
Variabili di ambiente
Le variabili di ambiente possono essere usate per fornire alcune informazioni di configurazione di runtime. Le manopole di configurazione specificate come variabili di ambiente hanno in genere il prefisso DOTNET_. Per la configurazione del runtime di .NET Framework, usare invece il COMPlus_ prefisso .
È possibile definire le variabili di ambiente dal Pannello di controllo di Windows, dalla riga di comando o a livello di codice chiamando il Environment.SetEnvironmentVariable(String, String) metodo nei sistemi basati su Windows e Unix.
Gli esempi seguenti illustrano come impostare una variabile di ambiente nella riga di comando:
# Windows
set DOTNET_GCRetainVM=1
# Powershell
$env:DOTNET_GCRetainVM="1"
# Unix
export DOTNET_GCRetainVM=1