Cara menjalankan aplikasi .NET Core console dari baris perintah

Jawaban:

274

Jika itu adalah aplikasi yang bergantung pada kerangka kerja (default), Anda menjalankannya dotnet yourapp.dll.

Jika itu adalah aplikasi mandiri, Anda menjalankannya menggunakan yourapp.exeWindows dan ./yourappUnix.

Untuk informasi lebih lanjut tentang perbedaan antara kedua jenis aplikasi, lihat artikel .NET Core Application Deployment di .Net Documents.

svick
sumber
22
Sungguh menakjubkan berapa lama waktu yang saya butuhkan untuk mengetahuinya. Saya mencoba semua jenis perintah "dotnet run", dll. Ini adalah tempat pertama yang saya temui dalam banyak pencarian yang memberikan penggunaan dotnet yang benar untuk menjalankan aplikasi konsol. Mengapa Microsoft membuat .NET Core jadi tidak ramah bagi pengembang?
Glen Thomas
2
@GlenThomas Jika Anda ingin menjalankan aplikasi yang Anda kembangkan, Anda gunakan dotnet run. Juga, di mana Anda melihat? Di mana Anda mengharapkan informasi ini?
svick
1
"dotnet run" tampaknya tidak lagi menjadi masalah dengan proyek inti NET. Menggunakan pengaturan csproj MSBuild yang lebih baru daripada file project.json yang lama.
Glen Thomas
1
@ GlenThomas Itu tidak benar, dotnet runbekerja sama untuk proyek csproj baru seperti halnya untuk project.json.
svick
5
@GlenThomas, tidak yakin apakah ini masalah yang Anda alami, tetapi ketika Anda mencoba untuk menggunakan dotnet run, pastikan Anda berada di direktori proyek, bukan direktori solusi.
Ryan Lundy
46

Anda dapat dengan mudah membuat EXE (untuk Windows) tanpa menggunakan perintah build cryptic. Anda dapat melakukannya dengan benar di Visual Studio.

  1. Klik kanan Proyek Aplikasi Konsol dan pilih Terbitkan .
  2. Halaman baru akan terbuka (tangkapan layar di bawah)
  3. Tekan Konfigurasikan ...
  4. Kemudian ubah Mode Penyebaran ke Mandiri atau Kerangka bergantung . .NET Core 3.0 memperkenalkan penyebaran file tunggal yang dapat dieksekusi tunggal.
  5. Gunakan "framework dependent" jika Anda tahu mesin target memiliki .NET Core runtime karena akan menghasilkan lebih sedikit file untuk diinstal.
  6. Jika sekarang Anda melihat folder bin di explorer, Anda akan menemukan file .exe.
  7. Anda harus menggunakan exe beserta file config dan dll yang mendukung.

Penerbitan Aplikasi Konsol

Jess
sumber
5
Ya. Ada EXE - bersama dengan 217 file lainnya (api-ms-win-core-namedpipe-l1-1-0.dll, dll). Apakah ada cara untuk menggabungkan ini ke EXE tunggal?
Elton
1
Pertanyaan bagus @ Elton. Saya tidak tahu. AFAIK Anda harus menggunakan semua dll.
Jess
2
Saya akan berpikir fakta bahwa itu dikonfigurasi untuk menjadi mandiri akan memerlukan semua DLL untuk berada di sana. Jika Anda tidak menginginkannya di sana, mode penyebaran mungkin harus Framework Dependent
kippermand
1
Anda membuat hari Jumat saya!
Robin Johnson
20

Anda juga dapat menjalankan aplikasi Anda seperti aplikasi konsol lainnya tetapi hanya setelah publikasi.

Misalkan Anda memiliki aplikasi konsol sederhana bernama MyTestConsoleApp. Buka konsol manajer paket dan jalankan perintah berikut:

dotnet publish -c Debug -r win10-x64 

flag -c berarti Anda ingin menggunakan konfigurasi debug (dalam kasus lain Anda harus menggunakan nilai Release) - flag r berarti bahwa aplikasi Anda akan dijalankan pada platform Windows dengan arsitektur x64.

Ketika prosedur mempublikasikan selesai Anda akan melihat file * .exe yang terletak di direktori bin / Debug / publish Anda.

Sekarang Anda dapat menyebutnya melalui alat baris perintah. Jadi buka jendela CMD (atau terminal) untuk pindah ke direktori tempat file * .exe Anda berada dan tulis perintah berikut:

>> MyTestConsoleApp.exe argument-list

Sebagai contoh:

>> MyTestConsoleApp.exe --input some_text -r true
Tequila
sumber
2

Dengan dotnetcore3.0 Anda dapat mengemas seluruh solusi menjadi satu file yang dapat dieksekusi menggunakan PublishSingleFileproperti

-p:PublishSingleFile=True

Sumber file tunggal yang dapat dieksekusi

Contoh Self Contained, ReleaseOSX dieksekusi:

dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=True --self-contained True

Contoh dari Self Contained, DebugLinux 64bit dieksekusi:

dotnet publish -c Debug -r linux-x64 -p:PublishSingleFile=True --self-contained True

Linux build tidak tergantung pada distribusi dan saya menemukan mereka berfungsi pada Ubuntu 18.10, CentOS 7.7, dan Amazon Linux 2.

A Self Contained executable termasuk Dotnet Runtime dan Runtime tidak perlu diinstal pada mesin target. Eksekusi yang diterbitkan disimpan di bawah:

<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/ di Linux, OSX dan

<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\ di Windows.

TMT
sumber
Anda juga dapat menambahkan konfigurasi ke file csproj:<PublishSingleFile>true</PublishSingleFile>
Mahdi Ataollahi
0

Menggunakan CMD Anda dapat menjalankan konsol .net core project jika .net core SDK diinstal di mesin Anda:

Untuk menjalankan proyek konsol menggunakan windows command-Line, pilih jalur spesifik dari direktori Anda dan ketik perintah berikut di bawah ini

jalankan dotnet

Saurabh Nachankar
sumber
0

sebelum Anda menjalankan cmd prompt, pastikan "appsettings.json" memiliki nilai yang sama dengan "appsettings.Development.json".

Pada prompt perintah, buka folder bin / debug / netcoreapp2.0. lalu jalankan "dotnet applicationname.dll"

rahul
sumber