dotnet run

Artikel ini berlaku untuk: ✔️ .NET Core 3.1 SDK dan versi yang lebih baru

Nama

dotnet run - Menjalankan kode sumber tanpa perintah kompilasi atau peluncuran eksplisit.

Sinopsis

dotnet run [-a|--arch <ARCHITECTURE>] [-c|--configuration <CONFIGURATION>]
    [-f|--framework <FRAMEWORK>] [--force] [--interactive]
    [--launch-profile <NAME>] [--no-build]
    [--no-dependencies] [--no-launch-profile] [--no-restore]
    [--os <OS>] [--project <PATH>] [-r|--runtime <RUNTIME_IDENTIFIER>]
    [--tl:[auto|on|off]] [-v|--verbosity <LEVEL>]
    [[--] [application arguments]]

dotnet run -h|--help

Deskripsi

Perintah ini dotnet run menyediakan opsi yang nyaman untuk menjalankan aplikasi Anda dari kode sumber dengan satu perintah. Ini berguna untuk pengembangan iteratif cepat dari baris perintah. Perintah bergantung pada dotnet build perintah untuk membangun kode. Persyaratan apa pun untuk build, seperti proyek harus dipulihkan terlebih dahulu, berlaku dotnet run juga.

Catatan

dotnet run tidak menghormati argumen seperti /property:property=value, yang dihormati oleh dotnet build.

File output ditulis ke lokasi default, yaitu bin/<configuration>/<target>. Misalnya jika Anda memiliki netcoreapp2.1 aplikasi dan Anda menjalankan dotnet run, output ditempatkan di bin/Debug/netcoreapp2.1. File ditimpa sesuai kebutuhan. File sementara ditempatkan di obj direktori.

Jika proyek menentukan beberapa kerangka kerja, menjalankan dotnet run menghasilkan kesalahan kecuali -f|--framework <FRAMEWORK> opsi digunakan untuk menentukan kerangka kerja.

Perintah dotnet run digunakan dalam konteks proyek, bukan rakitan yang dibangun. Jika Anda mencoba menjalankan DLL aplikasi yang bergantung pada kerangka kerja, Anda harus menggunakan dotnet tanpa perintah. Misalnya, untuk menjalankan myapp.dll, gunakan:

dotnet myapp.dll

Untuk informasi selengkapnya tentang dotnet driver, lihat topik .NET Command Line Tools (CLI).

Untuk menjalankan aplikasi, dotnet run perintah menyelesaikan dependensi aplikasi yang berada di luar runtime bersama dari cache NuGet. Karena menggunakan dependensi cache, tidak disarankan untuk digunakan dotnet run untuk menjalankan aplikasi dalam produksi. Sebagai gantinya, buat penyebaran menggunakan dotnet publish perintah dan sebarkan output yang diterbitkan.

Pemulihan implisit

Anda tidak harus menjalankan dotnet restore karena dijalankan secara implisit oleh semua perintah yang memerlukan terjadinya pemulihan, seperti dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish, dan dotnet pack. Untuk menonaktifkan pemulihan implisit, gunakan opsi --no-restore.

Perintah dotnet restore masih berguna dalam skenario tertentu di mana pemulihan secara eksplisit masuk akal, seperti pembangunan integrasi berkelanjutan di Azure DevOps Services atau dalam sistem pembangunan yang perlu secara eksplisit mengontrol saat pemulihan terjadi.

Untuk informasi tentang cara mengelola umpan NuGet, lihat dotnet restore dokumentasi.

Perintah ini mendukung opsi dotnet restore ketika diteruskan dalam bentuk panjang (misalnya, --source). Opsi pendek, seperti -s, tidak didukung.

Pengunduhan manifes beban kerja

Saat Anda menjalankan perintah ini, pengunduhan latar belakang asinkron manifes iklan untuk beban kerja akan dimulai. Jika unduhan masih berjalan saat perintah ini selesai, unduhan akan dihentikan. Untuk informasi selengkapnya, lihat Manifes iklan.

Opsi

  • --

    Memisahkan argumen ke dotnet run dari argumen untuk aplikasi yang dijalankan. Semua argumen setelah pemisah ini diteruskan ke eksekusi aplikasi.

  • -a|--arch <ARCHITECTURE>

    Menentukan arsitektur target. Hal ini adalah sintaks singkat untuk mengatur Pengidentifikasi Runtime (RID), di mana nilai yang disediakan digabung dengan RID default. Misalnya, pada komputer win-x64, menentukan --arch x86 akan mengatur RID ke win-x86. Jika Anda menggunakan opsi ini, jangan gunakan opsi -r|--runtime. Tersedia sejak .NET 6 Preview 7.

  • -c|--configuration <CONFIGURATION>

    Menentukan konfigurasi build. Pengaturan default untuk sebagian besar proyek adalah Debug, tetapi Anda dapat mengambil alih pengaturan konfigurasi build di proyek Anda.

  • -f|--framework <FRAMEWORK>

    Membangun dan menjalankan aplikasi menggunakan kerangka kerja yang ditentukan. Kerangka kerja harus ditentukan dalam file proyek.

  • --force

    Memaksa semua dependensi untuk diselesaikan bahkan jika pemulihan terakhir berhasil. Menentukan bendera ini sama dengan menghapus file project.assets.json.

  • -?|-h|--help

    Mencetak deskripsi cara menggunakan perintah.

  • --interactive

    Memungkinkan perintah berhenti dan menunggu input atau tindakan pengguna. Misalnya, untuk menyelesaikan autentikasi. Tersedia sejak SDK .NET Core 3.0.

  • --launch-profile <NAME>

    Nama profil peluncuran (jika ada) untuk digunakan saat meluncurkan aplikasi. Profil peluncuran ditentukan dalam file launch Pengaturan.json dan biasanya disebut Development, Staging, dan Production. Untuk informasi selengkapnya, lihat Bekerja dengan beberapa lingkungan.

  • --no-build

    Tidak membangun proyek sebelum berjalan. Ini juga secara implisit --no-restore mengatur bendera.

  • --no-dependencies

    Saat memulihkan proyek dengan referensi project-to-project (P2P), memulihkan proyek root dan bukan referensi.

  • --no-launch-profile

    Tidak mencoba menggunakan launch Pengaturan.json untuk mengonfigurasi aplikasi.

  • --no-restore

    Tidak menjalankan pemulihan implisit saat menjalankan perintah.

  • --os <OS>

    Menentukan sistem operasi (OS) target. Hal ini adalah sintaks singkat untuk mengatur Pengidentifikasi Runtime (RID), di mana nilai yang disediakan digabung dengan RID default. Misalnya, pada komputer win-x64, menentukan --os linux akan mengatur RID ke linux-x64. Jika Anda menggunakan opsi ini, jangan gunakan opsi -r|--runtime. Tersedia sejak .NET 6.

  • --project <PATH>

    Menentukan jalur file proyek yang akan dijalankan (nama folder atau jalur lengkap). Jika tidak ditentukan, defaultnya ke direktori saat ini.

    Singkatan -p untuk --project tidak digunakan lagi mulai dari .NET 6 SDK. Untuk waktu terbatas mulai dari .NET 6 RC1 SDK, -p masih dapat digunakan meskipun --project peringatan penghentian. Jika argumen yang disediakan untuk opsi tidak berisi =, perintah akan menerima -p sebagai singkatan --projectdari . Jika tidak, perintah mengasumsikan bahwa -p singkatan dari --property. Penggunaan -p fleksibel untuk --project ini akan di-fase di .NET 7.

  • --property:<NAME>=<VALUE>

    Mengatur satu atau beberapa properti MSBuild. Tentukan beberapa properti yang dibatasi oleh titik koma atau dengan mengulangi opsi:

    --property:<NAME1>=<VALUE1>;<NAME2>=<VALUE2>
    --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
    

    Formulir -p pendek dapat digunakan untuk --property. Jika argumen yang disediakan untuk opsi berisi =, -p diterima sebagai singkatan dari --property. Jika tidak, perintah mengasumsikan bahwa -p singkatan dari --project.

    Untuk meneruskan --property ke aplikasi daripada mengatur properti MSBuild, berikan opsi setelah pemisah -- sintaks, misalnya:

    dotnet run -- --property name=value
    
  • -r|--runtime <RUNTIME_IDENTIFIER>

    Menentukan runtime target untuk memulihkan paket. Untuk daftar Pengidentifikasi Runtime (RID), lihat katalog RID.

  • --tl:[auto|on|off]

    Menentukan apakah pencatat terminal harus digunakan untuk output build. Defaultnya adalah auto, yang pertama memverifikasi lingkungan sebelum mengaktifkan pengelogan terminal. Pemeriksaan lingkungan memverifikasi bahwa terminal mampu menggunakan fitur output modern dan tidak menggunakan output standar yang dialihkan sebelum mengaktifkan pencatat baru. on melewati pemeriksaan lingkungan dan mengaktifkan pengelogan terminal. off melewati pemeriksaan lingkungan dan menggunakan pencatat konsol default.

    Pencatat terminal menunjukkan fase pemulihan diikuti oleh fase build. Selama setiap fase, proyek bangunan saat ini muncul di bagian bawah terminal. Setiap proyek yang membangun menghasilkan target MSBuild yang saat ini sedang dibangun dan jumlah waktu yang dihabiskan untuk target tersebut. Anda dapat mencari informasi ini untuk mempelajari lebih lanjut tentang build. Setelah proyek selesai dibangun, satu bagian "build completed" ditulis yang menangkap:

    • Nama proyek bawaan.
    • Kerangka kerja target (jika multi-target).
    • Status build tersebut.
    • Output utama build tersebut (yang di-hyperlink).
    • Diagnostik apa pun yang dihasilkan untuk proyek tersebut.

    Opsi ini tersedia mulai dari .NET 8.

  • -v|--verbosity <LEVEL>

    Mengatur tingkat verbositas perintah. Nilai yang diizinkan adalah q[uiet], m[inimal], n[ormal], d[etailed], dan diag[nostic]. Default adalah minimal. Untuk informasi selengkapnya, lihat LoggerVerbosity .

Contoh

  • Jalankan proyek di direktori saat ini:

    dotnet run
    
  • Jalankan proyek yang ditentukan:

    dotnet run --project ./projects/proj1/proj1.csproj
    
  • Jalankan proyek di direktori saat ini, menentukan Konfigurasi rilis:

    dotnet run --property:Configuration=Release
    
  • Jalankan proyek di direktori saat ini ( --help argumen dalam contoh ini diteruskan ke aplikasi, karena opsi kosong -- digunakan):

    dotnet run --configuration Release -- --help
    
  • Pulihkan dependensi dan alat untuk proyek di direktori saat ini hanya memperlihatkan output minimal lalu jalankan proyek:

    dotnet run --verbosity m