.NET Core konsol uygulaması komut satırından nasıl çalıştırılır


Yanıtlar:


274

Çerçeveye bağlı bir uygulama (varsayılan) ise, onu çalıştırırsınız dotnet yourapp.dll.

Bağımsız bir uygulamasa, şunu kullanarak çalıştırın: yourapp.exe Windows ve ./yourappUnix üzerinde .

İki uygulama türü arasındaki farklar hakkında daha fazla bilgi için .Net Docs ile ilgili .NET Core Application Deployment makalesine bakın.


22
Bunu bulmamın ne kadar sürdüğü şaşırtıcı. Ben "dotnet run" komutları, vb her türlü deniyorum. Bu bir konsol uygulaması çalıştırmak için doğru dotnet kullanımını veren arama bir sürü rastlamak ilk yerdir. Microsoft neden .NET Core'u geliştirici dostu yapmıyor?
Glen Thomas

2
@GlenThomas Geliştirdiğiniz bir uygulamayı çalıştırmak istiyorsanız, kullanın dotnet run. Ayrıca, nereye baktın? Bu bilgiyi nereden beklersiniz?
svick

1
"dotnet run" artık eski project.json dosyaları yerine daha yeni MSBuild csproj kurulumunu kullanan .NET çekirdek projeleri için geçerli görünmüyor.
Glen Thomas

1
@GlenThomas Bu doğru değil dotnet run, yeni csproj projeleri için project.json için olduğu gibi çalışıyor.
svick

5
@GlenThomas, yaşadığınız sorunun bu olup olmadığından emin değilsiniz, ancak kullanmaya çalıştığınızda dotnet run, çözüm dizininde değil, proje dizininde olduğunuzdan emin olun.
Ryan Lundy

46

Herhangi bir şifreli derleme komutu kullanmadan kolayca bir EXE (Windows için) oluşturabilirsiniz. Doğrudan Visual Studio'da yapabilirsiniz.

  1. Konsol Uygulama Projesi'ne sağ tıklayın ve Yayınla'yı seçin .
  2. Yeni bir sayfa açılacaktır (aşağıdaki ekran görüntüsü)
  3. Hit Yapılandır ...
  4. Sonra değiştirmek Dağıtım Modu için Bağımsız veya Çerçeve bağımlı . .NET Core 3.0, tek bir yürütülebilir dosya olan Tek bir dosya dağıtımı sunar.
  5. Hedef makinenin yüklemek için daha az dosya üreteceğinden bir .NET Core çalışma zamanı olduğunu biliyorsanız "çerçeveye bağlı" kullanın.
  6. Şimdi bin klasörünü explorer'da görüntülerseniz, .exe dosyasını bulacaksınız.
  7. Herhangi bir destekleyici yapılandırma ve dll dosyaları ile birlikte exe dağıtmak zorunda kalacak.

Konsol Uygulama Yayını


5
Evet. EXE var - 217 diğer dosyalarla birlikte (api-ms-win-core-namedpipe-l1-1-0.dll, vb). Bunu tek bir EXE'e paketlemek için yine de var mı?
Elton

1
İyi soru @Elton. Bilmiyorum. AFAIK tüm dll dağıtmak zorunda.
Jess

2
Kendi kendine yetecek şekilde yapılandırılmış olması gerçeği tüm bu DLL orada olmasını gerektirir. Bunları orada istemiyorsanız, dağıtım modunun muhtemelen Çerçeveye Bağlı olması gerekir
kippermand

1
Cuma günümü yaptın!
Robin Johnson

20

Uygulamanızı diğer konsol uygulamaları gibi ancak yayınlandıktan sonra çalıştırabilirsiniz.

Diyelim ki MyTestConsoleApp adlı basit bir konsol uygulamanız var. Paket yöneticisi konsolunu açın ve aşağıdaki komutu çalıştırın:

dotnet publish -c Debug -r win10-x64 

-c flag, hata ayıklama yapılandırmasını kullanmak istediğiniz anlamına gelir (diğer durumlarda Release değerini kullanmanız gerekir) - r flag, uygulamanızın x64 mimarisine sahip Windows platformunda çalıştırılacağı anlamına gelir.

Yayınlama işlemi tamamlandığında bin / Debug / publish dizininizde bulunan * .exe dosyasını göreceksiniz.

Şimdi komut satırı araçlarıyla arayabilirsiniz. Bu nedenle, CMD penceresini (veya terminal) * .exe dosyanızın bulunduğu dizine taşıyın ve sonraki komutu yazın:

>> MyTestConsoleApp.exe argument-list

Örneğin:

>> MyTestConsoleApp.exe --input some_text -r true

2

Dotnetcore3.0 ile tüm çözümü PublishSingleFileözelliği kullanarak tek dosyada yürütülebilir dosya olarak paketleyebilirsiniz

-p:PublishSingleFile=True

Kaynak Tek dosya yürütülebilir

Bir örneği Self Contained, ReleaseOS X yürütülebilir:

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

Bir örneği Self Contained, DebugLinux yürütülebilir 64bit:

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

Linux derlemesi dağıtımdan bağımsızdır ve onları Ubuntu 18.10, CentOS 7.7 ve Amazon Linux 2 üzerinde çalışırken buldum.

Bağımsız bir yürütülebilir dosya Dotnet Runtime'ı içerir ve Runtime'ın bir hedef makineye yüklenmesi gerekmez. Yayımlanan yürütülebilir dosyalar aşağıdakiler altına kaydedilir:

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

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


Yapılandırmayı csproj dosyasına da ekleyebilirsiniz:<PublishSingleFile>true</PublishSingleFile>
Mehdi Ataollahi

0

Makinenize .net core SDK yüklenmişse CMD kullanarak bir konsol .net core projesi çalıştırabilirsiniz:

Konsol projesini windows komut satırı kullanarak çalıştırmak için, dizininizden belirli bir yolu seçin ve aşağıdaki komutu yazın

dotnet koşusu


0

cmd isteminde çalıştırmadan önce, "appsettings.json" öğesinin "appsettings.Development.json" ile aynı değerlere sahip olduğundan emin olun.

Komut isteminde bin / debug / netcoreapp2.0 klasörüne gidin. sonra "dotnet applicationname.dll" dosyasını çalıştırın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.