কমান্ড লাইন থেকে .NET কোর কনসোল অ্যাপটি কীভাবে চালাবেন


215

আমার কাছে একটি .NET কোর কনসোল অ্যাপ্লিকেশন রয়েছে এবং এটি চালিয়ে গেছে dotnet publish। তবে কমান্ড লাইন থেকে কীভাবে অ্যাপ্লিকেশনটি চালানো যায় তা আমি বুঝতে পারি না। কোন ইঙ্গিত?


সম্ভবত এটি সহায়ক হতে পারে: স্ট্যাকওভারফ্লো.
com/ জিজ্ঞাসা

উত্তর:


274

যদি এটি কোনও কাঠামো-নির্ভর অ্যাপ্লিকেশন (ডিফল্ট) হয় তবে আপনি এটি চালিয়ে যান dotnet yourapp.dll

যদি এটি একটি স্ব-অন্তর্ভুক্ত অ্যাপ্লিকেশন হয় তবে আপনি এটি yourapp.exeউইন্ডোজ এবং ./yourappইউনিক্সে ব্যবহার করে চালান ।

দুটি অ্যাপের ধরণের পার্থক্য সম্পর্কে আরও তথ্যের জন্য । নেট ডক্সে .NET কোর অ্যাপ্লিকেশন ডিপ্লোয়মেন্ট নিবন্ধটি দেখুন।


22
এটি আশ্চর্যজনক যে এটি আমাকে খুঁজে পেতে কতক্ষণ সময় নিয়েছিল। আমি সমস্ত ধরণের "ডটনেট রান" কমান্ডের চেষ্টা করছি etc. মাইক্রোসফ্ট। নেট নেট এত অন-বিকাশকারীকে বন্ধুত্বপূর্ণ করে তুলল কেন?
গ্লেন টমাস

2
@ গ্লেনথোমাস আপনি যদি এমন একটি অ্যাপ্লিকেশন চালাতে চান যা আপনি বিকাশ করছেন তবে আপনি ব্যবহার করুন dotnet run। এছাড়াও, আপনি কোথায় তাকান? আপনি কোথায় এই তথ্য আশা করবেন?
সোভিক

1
"ডটনেট রান" আর পুরানো প্রজেক্ট.জসন ফাইলের চেয়ে নতুন এমএসবিল্ড সিএসপ্রোজ সেটআপ ব্যবহার করে। নেট কোর প্রকল্পগুলির ক্ষেত্রে আর মনে হয় না।
গ্লেন টমাস

1
@ গ্লেনথোমাস এটি সত্য নয়, dotnet runনতুন সিএসপোজ প্রকল্পগুলির জন্য একই কাজ করে যেমন প্রকল্প.জসনের ক্ষেত্রে হয়েছিল।
সোভিক

5
@ গ্লেনথোমাস, আপনার যে সমস্যাটি ছিল এটি নিশ্চিত কিনা তা নিশ্চিত হন না, তবে আপনি যখন ব্যবহারের চেষ্টা করবেন তখন dotnet runনিশ্চিত হন যে আপনি প্রকল্প ডিরেক্টরিতে রয়েছেন, সমাধান ডিরেক্টরিতে নয়।
রায়ান লন্ডি

46

আপনি কোনও ক্রিপ্টিক বিল্ড কমান্ড ব্যবহার না করে খুব সহজেই একটি এক্সই (উইন্ডোজের জন্য) তৈরি করতে পারেন। আপনি এটি সরাসরি ভিজ্যুয়াল স্টুডিওতে করতে পারেন।

  1. কনসোল অ্যাপ প্রকল্পে ডান ক্লিক করুন এবং প্রকাশ করুন নির্বাচন করুন
  2. একটি নতুন পৃষ্ঠা খুলবে (নীচে স্ক্রিন শট)
  3. হিট কনফিগার ...
  4. তারপর পরিবর্তন ডিপ্লোয়মেন্ট মোড থেকে স্বয়ংসম্পূর্ণ বা ফ্রেমওয়ার্ক নির্ভরশীল.NET কোর 3.0 একটি একক ফাইল স্থাপনার সাথে পরিচয় করিয়ে দেয় যা একক এক্সিকিউটেবল।
  5. "ফ্রেমওয়ার্ক নির্ভরশীল" ব্যবহার করুন যদি আপনি জানেন যে টার্গেট মেশিনে একটি .NET কোর রানটাইম রয়েছে কারণ এটি ইনস্টল করতে কম ফাইল তৈরি করবে।
  6. আপনি যদি এখন এক্সপ্লোরারটিতে বিন ফোল্ডারটি দেখেন তবে আপনি .exe ফাইলটি পাবেন।
  7. আপনাকে কোনও সমর্থনকারী কনফিগারেশন এবং ডেল ফাইলের সাথে এক্সিকে মোতায়েন করতে হবে।

কনসোল অ্যাপ প্রকাশ করুন


5
হাঁ। EXE রয়েছে - 217 অন্যান্য ফাইলের সাথে (এপিআই-এমএস-উইন-কোর-নেমড পাইপ-l1-1-0.dll, ইত্যাদি)। এটি কি কোনও একক EXE এ বান্ডিল করতে পারে?
এলটন

1
ভাল প্রশ্ন @ এলটন। আমি জানি না. আফাইক আপনাকে সমস্ত ঘর স্থাপন করতে হবে।
জেস

2
আমি ভাবব যে এটিকে স্বাবলম্বিত হওয়ার জন্য কনফিগার করা হয়েছে সেই সমস্ত ডিএলএল উপস্থিত থাকতে হবে। আপনি যদি
ওগুলিকে

1
তুমি আমার শুক্রবার বানিয়েছ!
রবিন জনসন

20

আপনি আপনার অ্যাপ্লিকেশনটি অন্য কনসোল অ্যাপ্লিকেশনগুলির মতো চালাতে পারবেন তবে কেবল প্রকাশের পরে।

ধরা যাক আপনার কাছে মাই টেস্টকনসোল অ্যাপ্লিকেশন নামে একটি সাধারণ কনসোল অ্যাপ রয়েছে। প্যাকেজ পরিচালকের কনসোলটি খুলুন এবং নিম্নলিখিত কমান্ডটি চালান:

dotnet publish -c Debug -r win10-x64 

-সি ফ্ল্যাগের অর্থ হ'ল আপনি ডিবাগ কনফিগারেশনটি ব্যবহার করতে চান (অন্য ক্ষেত্রে আপনাকে রিলিজ মানটি ব্যবহার করা উচিত) - আর ফ্ল্যাগের অর্থ হল আপনার অ্যাপ্লিকেশনটি এক্স 64 architectক্যের সাথে উইন্ডোজ প্ল্যাটফর্মে চালানো হবে।

প্রকাশের প্রক্রিয়াটি শেষ হয়ে গেলে আপনি আপনার বিন / ডিবাগ / প্রকাশ ডিরেক্টরিতে অবস্থিত * .exe ফাইলটি দেখতে পাবেন।

এখন আপনি কমান্ড লাইন সরঞ্জামের মাধ্যমে এটি কল করতে পারেন। সুতরাং সিএমডি উইন্ডোটি খুলুন (বা টার্মিনাল) আপনার * .exe ফাইলটি যে ডিরেক্টরিতে অবস্থিত সেখানে চলে যান এবং পরবর্তী কমান্ডটি লিখুন:

>> MyTestConsoleApp.exe argument-list

উদাহরণ স্বরূপ:

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

2

Dotnetcore3.0 এর সাহায্যে আপনি PublishSingleFileসম্পত্তিটিকে ব্যবহার করে একক-ফাইলের মধ্যে সম্পূর্ণ সমাধান প্যাকেজ করতে পারেন

-p:PublishSingleFile=True

উত্স একক-ফাইল এক্সিকিউটেবল

একটি উদাহরণ Self Contained, Releaseওএসএক্স এক্সিকিউটেবল:

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/ লিনাক্স, ওএসএক্স এবং

<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\ উইন্ডোজে


আপনি সিএসপোজ ফাইলটিতে কনফিগারেশনটি যুক্ত করতে পারেন:<PublishSingleFile>true</PublishSingleFile>
মাহদী

0

সিএমডি ব্যবহার করে আপনি একটি মেশিনে। নেট কোর এসডিকে ইনস্টল করা থাকলে একটি কনসোল। নেট কোর প্রকল্প চালাতে পারেন:

উইন্ডোজ কমান্ড-লাইন ব্যবহার করে কনসোল প্রজেক্টটি চালানোর জন্য, আপনার ডিরেক্টরি থেকে নির্দিষ্ট পথটি বেছে নিন এবং নীচের কমান্ডটি লিখুন

ডটনেট রান


0

আপনি সিএমডি প্রম্পটে চালানোর আগে, "অ্যাপসেটিংস.জসন" এর "অ্যাপসেটিংস.ডভেলপমেন্ট.জসন" এর সমান মান রয়েছে তা নিশ্চিত করুন।

কমান্ড প্রম্পটে, বিন / ডিবাগ / নেটকর্প্প ২.০ ফোল্ডারে সমস্ত উপায়ে যান। তারপরে "dotnet applicationname.dll" চালান

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.