Bagikan melalui


Pengaturan konfigurasi runtime .NET

.NET menyediakan mekanisme berikut untuk mengonfigurasi perilaku runtime .NET:

Mekanisme Catatan
Fileruntimeconfig.json Menerapkan pengaturan ke aplikasi tertentu. Gunakan file ini jika beberapa instans aplikasi Anda berjalan pada saat yang sama pada satu sistem, dan Anda ingin mengonfigurasi masing-masing untuk performa optimal.
properti MSBuild Menerapkan pengaturan ke aplikasi tertentu. Properti MSBuild lebih diutamakan daripada pengaturan di runtimeconfig.json.
Variabel lingkungan Menerapkan pengaturan ke semua aplikasi .NET.

Beberapa nilai konfigurasi juga dapat diatur secara terprogram dengan memanggil AppContext.SetSwitch metode .

Nota

Artikel di bagian ini menyangkut konfigurasi runtime .NET itu sendiri. Jika Anda memigrasikan aplikasi dari .NET Framework ke .NET dan mencari pengganti file app.config , lihat Memodernisasi setelah meningkatkan ke .NET. Untuk informasi tentang menyediakan nilai konfigurasi kustom ke aplikasi .NET, lihat Konfigurasi di .NET.

Artikel di bagian dokumentasi ini diatur menurut kategori, misalnya, penelusuran kesalahan dan pengumpulan sampah. Jika berlaku, opsi konfigurasi ditampilkan untuk file runtimeconfig.json , properti MSBuild, variabel lingkungan, dan, untuk referensi silang, app.config file untuk proyek .NET Framework.

runtimeconfig.json

Saat proyek dibuat, file [appname].runtimeconfig.json dihasilkan di direktori output. Jika file runtimeconfig.template.json ada di folder yang sama dengan file proyek, opsi konfigurasi apa pun yang ada di dalamnya dimasukkan ke dalam file .runtimeconfig.json[appname ]. Jika Anda membuat aplikasi sendiri, letakkan opsi konfigurasi apa pun di file runtimeconfig.template.json . Jika Anda baru saja menjalankan aplikasi, masukkan langsung ke file .runtimeconfig.json[appname ].

Nota

  • File [appname].runtimeconfig.json akan ditimpa pada build selanjutnya.
  • Jika aplikasi OutputType Anda tidak Exe dan Anda ingin opsi konfigurasi disalin dari runtimeconfig.template.json ke [nama aplikasi].runtimeconfig.json, Anda harus secara eksplisit diatur GenerateRuntimeConfigurationFiles ke true dalam file proyek Anda. Untuk aplikasi yang memerlukan file runtimeconfig.json , properti ini default ke true.

Tentukan opsi konfigurasi runtime di bagian configProperties dari file runtimeconfig.json atau runtimeconfig.template.json . Bagian ini memiliki formulir:

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

Contoh [nama aplikasi] file.runtimeconfig.json

Jika Anda meletakkan opsi dalam file JSON output, letakkan di bawah properti 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
    }
  }
}

Contoh file runtimeconfig.template.json

Jika Anda menempatkan opsi dalam file JSON templat, abaikanruntimeOptions properti.

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

Properti MSBuild

Beberapa opsi konfigurasi runtime dapat diatur menggunakan properti MSBuild dalam file .csproj atau .vbproj dari proyek .NET gaya SDK. Properti MSBuild lebih diutamakan daripada opsi yang diatur dalam file runtimeconfig.template.json .

Untuk pengaturan konfigurasi runtime yang tidak memiliki properti MSBuild tertentu, Anda dapat menggunakan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut .

Berikut adalah contoh file proyek bergaya SDK dengan properti MSBuild untuk mengonfigurasi perilaku 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>

Properti MSBuild untuk mengonfigurasi perilaku runtime dicatat dalam artikel individual untuk setiap area, misalnya, pengumpulan sampah. Mereka juga terdapat di bagian Konfigurasi runtime dari referensi properti MSBuild untuk proyek berformat SDK.

Variabel lingkungan

Variabel lingkungan dapat digunakan untuk menyediakan beberapa informasi konfigurasi runtime. Kenop konfigurasi yang ditentukan sebagai variabel lingkungan umumnya memiliki awalan DOTNET_. (Untuk konfigurasi runtime .NET Framework, gunakan awalan sebagai gantinya COMPlus_ .)

Anda dapat menentukan variabel lingkungan dari Panel Kontrol Windows, di baris perintah, atau secara terprogram dengan memanggil Environment.SetEnvironmentVariable(String, String) metode pada sistem berbasis Windows dan Unix.

Contoh berikut menunjukkan cara mengatur variabel lingkungan di baris perintah:

# Windows
set DOTNET_GCRetainVM=1

# Powershell
$env:DOTNET_GCRetainVM="1"

# Unix
export DOTNET_GCRetainVM=1

Lihat juga