कमांड लाइन से .NET कोर कंसोल ऐप कैसे चलाएं


215

मेरे पास .NET Core कंसोल ऐप है और मैंने चलाया है dotnet publish। हालाँकि, मैं यह पता नहीं लगा सकता कि कमांड लाइन से एप्लिकेशन कैसे चलाया जाए। कोई संकेत?


शायद यह मदद का हो सकता है: stackoverflow.com/questions/44074121/…
बेंट ट्रैनबर्ग

जवाबों:


274

यदि यह एक फ्रेमवर्क-निर्भर अनुप्रयोग (डिफ़ॉल्ट) है, तो आप इसे चलाते हैं dotnet yourapp.dll

यदि यह एक स्व-निहित अनुप्रयोग है, तो आप इसे yourapp.exeविंडोज ./yourappपर और यूनिक्स पर उपयोग करके चलाते हैं ।

दो ऐप प्रकारों के बीच के अंतर के बारे में अधिक जानकारी के लिए, .net डॉक्स पर .NET कोर एप्लीकेशन तैनाती लेख देखें।


22
यह आश्चर्यजनक है कि मुझे यह पता लगाने में कितना समय लगा। मैं सभी प्रकार के "डॉटनेट रन" कमांड की कोशिश कर रहा हूं, आदि। यह पहला स्थान है जो मैं बहुत खोज में आया हूं जो कंसोल एप्लिकेशन को चलाने के लिए सही डॉटनेट उपयोग देता है। Microsoft ने .NET Core को इतना un-developer friendly क्यों बनाया?
ग्लेन थॉमस

2
@GlenThomas यदि आप एक एप्लिकेशन चलाना चाहते हैं जिसे आप विकसित कर रहे हैं, तो आप उपयोग करते हैं dotnet run। इसके अलावा, आपने कहां देखा? आप इस जानकारी की अपेक्षा कहां करेंगे?
12

1
"dotnet run" अब पुराने MS.uson फ़ाइलों के बजाय नए MSBuild csproj सेटअप का उपयोग करते हुए .NET कोर प्रोजेक्ट्स के मामले में नहीं लगता है।
ग्लेन थॉमस

1
@GlenThomas यह सच नहीं है, dotnet runयह नई csproj परियोजनाओं के लिए उसी तरह काम करता है जैसा उसने प्रोजेक्ट के लिए किया था। json।
स्विक

5
@GlenThomas, अगर यह समस्या है जो आप सुनिश्चित नहीं हैं, लेकिन जब आप उपयोग करने का प्रयास करते हैं dotnet run, तो सुनिश्चित करें कि आप प्रोजेक्ट निर्देशिका में हैं, न कि समाधान निर्देशिका।
रयान ल्यूडी

46

आप किसी भी क्रिप्टोकरंसी कमांड का उपयोग किए बिना बहुत आसानी से एक EXE (विंडोज के लिए) बना सकते हैं। आप इसे Visual Studio में सही कर सकते हैं।

  1. कंसोल ऐप प्रोजेक्ट पर राइट क्लिक करें और प्रकाशित करें चुनें ।
  2. एक नया पेज खुलेगा (नीचे स्क्रीन शॉट)
  3. हिट कॉन्फ़िगर करें ...
  4. फिर डिप्लॉयमेंट मोड को सेल्फ-निहित या फ्रेमवर्क पर निर्भर करें.NET कोर 3.0 एक एकल फ़ाइल परिनियोजन का परिचय देता है जो एक एकल निष्पादन योग्य है।
  5. "फ्रेमवर्क पर निर्भर" का उपयोग करें यदि आप जानते हैं कि लक्ष्य मशीन में .NET कोर रनटाइम है क्योंकि यह स्थापित करने के लिए कम फ़ाइलों का उत्पादन करेगा।
  6. यदि आप अब एक्सप्लोरर में बिन फ़ोल्डर देखते हैं , तो आपको .exe फ़ाइल मिलेगी।
  7. आपको किसी भी सहायक कॉन्फ़िगरेशन और dll फ़ाइलों के साथ exe को तैनात करना होगा।

कंसोल ऐप पब्लिश


5
हां। वहाँ EXE है - 217 अन्य फ़ाइलों के साथ (एपीआई-एमएस-विन-कोर-नेमपाइप-एल -1-1-0.dll, आदि)। वहाँ वैसे भी एक एकल EXE के लिए नीचे बंडल है?
एल्टन

1
अच्छा सवाल @ एल्टन। मुझे नहीं पता। AFAIK आप सभी dll तैनात करने के लिए है।
जेस

2
मुझे लगता है कि यह तथ्य यह है कि यह स्व-निहित होने के लिए कॉन्फ़िगर किया गया है, उन सभी DLL की आवश्यकता होगी। यदि आप उन्हें वहां नहीं चाहते हैं, तो परिनियोजन मोड को फ्रेमवर्क पर निर्भर होने की आवश्यकता होगी
kippermand

1
आपने मेरा शुक्रवार बना दिया!
रॉबिन जॉनसन

20

आप अपने ऐप को किसी अन्य कंसोल एप्लिकेशन की तरह भी चला सकते हैं लेकिन केवल प्रकाशित होने के बाद।

मान लीजिए कि आपके पास MyTestConsoleApp नाम का सरल कंसोल ऐप है। पैकेज प्रबंधक कंसोल खोलें और निम्न कमांड चलाएँ:

dotnet publish -c Debug -r win10-x64 

-c फ्लैग का मतलब है कि आप डिबग कॉन्फ़िगरेशन का उपयोग करना चाहते हैं (दूसरे मामले में आपको रिलीज़ वैल्यू का उपयोग करना चाहिए) - आर फ्लैग का मतलब है कि आपका एप्लिकेशन x64 आर्किटेक्चर के साथ विंडोज प्लेटफॉर्म पर चलाया जाएगा।

जब प्रकाशन प्रक्रिया पूरी हो जाएगी तो आपके बिन / डीबग / प्रकाशन निर्देशिका में स्थित * .exe फ़ाइल दिखाई देगी।

अब आप इसे कमांड लाइन टूल्स के माध्यम से कॉल कर सकते हैं। तो उस सीएमडी विंडो (या टर्मिनल) को उस डायरेक्टरी में ले जाएँ जहाँ आपकी * .exe फ़ाइल स्थित है और अगला कमांड लिखें।

>> MyTestConsoleApp.exe argument-list

उदाहरण के लिए:

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

2

Dotnetcore3.0 के साथ आप सम्पूर्ण समाधान को एक सिंगल-फाइल एग्जीक्यूटेबल PublishSingleFileप्रॉपर्टी के रूप में पैकेज कर सकते हैं

-p:PublishSingleFile=True

स्रोत एकल-फ़ाइल निष्पादन योग्य

का एक उदाहरण Self Contained, ReleaseOSX निष्पादन:

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

का एक उदाहरण Self Contained, Debugलिनक्स निष्पादन 64bit:

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

लिनक्स बिल्ड वितरण से प्रेरित है और मैंने उन्हें उबंटू 18.10, सेंटोस 7.7 और अमेज़ॅन लिनक्स 2 पर काम करते हुए पाया है।

एक स्व-निहित निष्पादन योग्य में डॉटनेट रनटाइम और रनटाइम को एक लक्ष्य मशीन पर स्थापित करने की आवश्यकता नहीं है। प्रकाशित निष्पादक इसके अंतर्गत सहेजे जाते हैं:

<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/ लिनक्स, OSX और पर

<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\ विंडोज पर।


आप csproj फ़ाइल में <PublishSingleFile>true</PublishSingleFile>
कॉन्फिगर

0

CMD का उपयोग करके आप एक कंसोल .net कोर प्रोजेक्ट चला सकते हैं यदि .net कोर SDK आपके मशीन में स्थापित हो:

विंडोज़ कमांड-लाइन का उपयोग करके कंसोल प्रोजेक्ट को चलाने के लिए, अपनी निर्देशिका से विशिष्ट पथ चुनें और कमांड के नीचे टाइप करें

डॉटनेट चलाते हैं


0

इससे पहले कि आप cmd प्रॉम्प्ट में चलें, सुनिश्चित करें कि "appsettings.json" में "appsettings.Development.json" जैसे ही मान हैं।

कमांड प्रॉम्प्ट में, बिन / डिबग / netcoreapp2.0 फ़ोल्डर में सभी तरह से जाएं। फिर "dotnet applicationname.dll" चलाएं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.