কনসোলের পরিবর্তে ভিজ্যুয়াল স্টুডিওতে একটি কনসোল অ্যাপ্লিকেশন আউটপুট পাওয়া


120

Eclipse দিয়ে জাভাতে একটি কনসোল অ্যাপ্লিকেশন করার সময়, আমি ভিজুয়াল স্টুডিওর মতো কনসোল পপিংয়ের পরিবর্তে আইডিইতে একটি পাঠ্য বাক্সে আউটপুটটি স্থাপন করা দেখি। এটি কার্যকর হয়, প্রোগ্রামটি সরে যাওয়ার পরেও, আমি এখনও এতে লেখা লেখাটির ভাল ব্যবহার করতে পারি, কারণ আমি এটি আবার চালা না করা পর্যন্ত এটি মুছে ফেলা হয় না। ভিজ্যুয়াল স্টুডিওর মাধ্যমে কি এমন কিছু অর্জন করা সম্ভব? আমি জানি না পরিবর্তে

System.Console.WriteLine(str);

আমি করতে পারি

System.Diagnostics.Debug.WriteLine(str);

আপনি আউটপুট উইন্ডোতে প্রচুর পরিমাণে "জাঙ্ক" পেয়ে যাবেন বলে বোঝানো সমস্ত চিহ্ন এবং এগুলি একেবারে একই জিনিস নয়।

আরও ভাল, কনসোল চালানোর পরিবর্তে আপনি যখন নিজের অ্যাপ্লিকেশনটি চালাবেন তখন আইডিইতে নিজেই সবকিছু করা সম্ভব?


আপনি ভিএস এর কোন সংস্করণ ব্যবহার করছেন?
গ্যাবে

আপনার কি কোনও পরীক্ষার ফলাফল ফলক রয়েছে?
গ্যাবে

আমি এটা কখনই লক্ষ্য করিনি। আমি এটা যাচাই করব. আমার এটা করা উচিত?
30:25 এ

উত্তর:


52

সরঞ্জামগুলিতে -> ভিজ্যুয়াল স্টুডিও বিকল্প সংলাপ -> ডিবাগিং -> "তাত্ক্ষণিক উইন্ডোতে সমস্ত আউটপুট উইন্ডো পাঠ্য পুনর্নির্দেশ করুন" পরীক্ষা করুন।


68
আমি এই চেকবাক্সটি চেক করেছি তবে আমি এখনও কনসোল পপআপ পেয়েছি এবং "আউটপুট" উইন্ডোতে (ডিবাগ, টেস্ট, বিল্ড, ..) বা "তাত্ক্ষণিক উইন্ডো" তে কিছুই পাওয়া যায় নি।
গুইসিম

6
@ এভেনলিসলে আপনার স্টলভিকের উত্তরের মতো অ্যাপ্লিকেশন প্রকারটি উইন্ডোজ অ্যাপ্লিকেশনটিতে পরিবর্তন করা দরকার । এই উত্তরে উল্লিখিত বিকল্পটি কোনও ক্ষেত্রেই আমার জন্য ডিফল্টরূপে ছিল।
টুটোনে

3
"তাত্ক্ষণিক উইন্ডোতে সমস্ত আউটপুট উইন্ডো পাঠ্য পুনর্নির্দেশ" এর সুনির্দিষ্ট অর্থ কী? আপনার প্রয়োজনে বিভিন্ন প্রসঙ্গ ব্যবহার করুন। "তাত্ক্ষণিক উইন্ডো" কী তা নিয়ে আমি বিভ্রান্ত হয়ে পড়েছি।
Xonatron

11
@ টোটোন প্রশ্নটি একটি "কনসোল অ্যাপ্লিকেশন" এবং স্পষ্টভাবে কেবল এটি ডিবাগিংয়ের উদ্দেশ্যে অন্য কোনও কিছুতে পরিবর্তনের জন্য বলা হয়েছে, যেখানে আমি কনসোলও করতে পারি না e রিডকে () কেবলই সরাসরি হাস্যকর!
মিকিডি

1
শুধুমাত্র ডিবাগ.উইরাইটলাইন () এর সাথে কাজ করে, কনসোলের সাথে কাজ করে না
W রাইটলাইন

45

ইন ভিসুয়াল স্টুডিও বিকল্পগুলির ডায়ালগ -> ডিবাগ -> "তাৎক্ষণিক উইন্ডো পুনর্চালনা সকল আউটপুট উইন্ডো পাঠ্য" পরীক্ষা করে দেখুন। তারপরে আপনার প্রকল্পের সেটিংসে যান এবং "কনসোল অ্যাপ্লিকেশন" থেকে "উইন্ডোজ অ্যাপ্লিকেশন" তে প্রকারটি পরিবর্তন করুন। সেই সময়ে ভিজ্যুয়াল স্টুডিও আর কনসোল উইন্ডো খুলবে না এবং আউটপুট ভিজ্যুয়াল স্টুডিওতে আউটপুট উইন্ডোতে পুনর্নির্দেশ করা হবে। তবে আপনি কী বা পাঠ্য ইনপুটটির অনুরোধ করা বা কনসোল সাফ করার মতো "সৃজনশীল" কিছু করতে পারবেন না - আপনি রানটাইম ব্যতিক্রম পাবেন।


25
আমি এটি বিশেষত আনাড়ি মনে করি। কী, আমি অবাক, ভিএস এর পিছনে যুক্তি কি? আইডিইর মধ্যে একটি প্যানেল নিজেই ইনপুট এবং আউটপুটের জন্য কনসোল হিসাবে আচরণ করার জন্য সমস্ত আধুনিক দিনের আইডিইয়ের দক্ষতা হওয়া উচিত। (স্ক্র্যাচ হেড)

12
প্রশ্নটি একটি "কনসোল অ্যাপ্লিকেশন" এবং স্পষ্টতই এটি ডিবাগিংয়ের উদ্দেশ্যে অন্য কোনও কিছুতে পরিবর্তিত করার জন্য বলা হয়েছে, যেখানে আমি এমনকি Console.ReadKey()সরাসরি উপহাসও করতে পারি না !
মিকিডি

নিশ্চিত না তবে তবে যখন আমি Output typeআমার অ্যাপ্লিকেশনটিকে উইন্ডোজ অ্যাপ্লিকেশন থেকে কনসোল-এ ফিরিয়ে আনার চেষ্টা করেছি তখন আমার অ্যাপ্লিকেশনটি চালানোর সময় কনসোল উইন্ডোটি কোথায় দেখা যায় তা দেখা যায় না। আমি অ্যাপ্লিকেশনটি ডিবাগ করতে সক্ষম এবং Mainএন্ট্রি পয়েন্টটিও হিট হচ্ছে। আমি এই পোস্টে উল্লিখিত বিকল্প সেটিংটিও উল্টেছি কিন্তু কোনও ফলসই হয়নি। আমি ভিএস 2017 সম্প্রদায় সংস্করণ ব্যবহার করছি। আমি আমার কনসোল উইন্ডোটি হারিয়েছি (কাঁদছি)।
আরবিটি

3
এটির মূল্য কীসের জন্য, ভিএস 15.8.7 এ আমি কনসোল অ্যাপ্লিকেশনটির জন্য পুনর্নির্দেশের আউটপুটটি পাবার একমাত্র উপায় ছিল এটি একটি উইন্ডোজ অ্যাপ্লিকেশনটিতে পরিবর্তন করা, এবং পুনর্নির্দেশ বাক্সটি অনিচ্ছুক রেখে দেওয়া। যদি আমি বাক্সটি চেক করি তবে এটি আউটপুট প্রদর্শন করে না।
dpberry178

6

ব্যবহার System.Diagnostics.Trace

আপনি যে শ্রোতাগুলি সংযুক্ত করেন তার উপর নির্ভর করে ট্রেস আউটপুট ডিবাগ উইন্ডো, কনসোল, একটি ফাইল, ডাটাবেস বা সমস্ত একবারে যেতে পারে। সম্ভাবনাগুলি আক্ষরিক অর্থেই অন্তহীন, কারণ আপনার নিজস্ব ট্রেসলিস্টনার বাস্তবায়ন অত্যন্ত সহজ।


হ্যাঁ, তবে আমি যা জানতে চাই তা হ'ল এটি নিজেই বাস্তবায়ন না করে কেবল এটি করা সম্ভব।
30:14 '

@ ডিভোরড ট্রেস ক্লাসের ফলাফলগুলি ডিফল্টরূপে কেবল ডিবাগ উইন্ডোতে আসে। আপনি যদি অন্য কোথাও আউটপুটটি দেখতে চান তবে আপনাকে কেবল অতিরিক্ত শ্রোতা সংযুক্ত করতে হবে (এবং ইতিমধ্যে বেশ কয়েকটি লিখিত আপনি ব্যবহার করতে পারেন)।
জোয়েল কোহোর্ন

1
আমি আমার ডিবাগ বিকল্প সংলাপে গিয়েছিলাম এবং ট্রেস আউটপুটটিকে তাত্ক্ষণিক উইন্ডোতে যেতে যাতে "ডিবাগ ক্র্যাপের সাথে সমস্ত মিশ্রিত না হয়" তা করতে "সমস্ত আউটপুট উইন্ডো পাঠ্যটিকে তাত্ক্ষণিক উইন্ডোতে পুনর্নির্দেশ করুন" বেছে নিয়েছি।
গ্যাবে

2

ভিজ্যুয়াল স্টুডিও, লোকদের জন্য সর্বশেষতম প্রকাশনা / গুলি পরীক্ষা করার সময় এটি। সর্বাধিক প্রস্তাবিত সমাধান যা আপনার কারওর জন্য আগে কাজ করে নি সম্ভবত এখন কাজ করে।

ভিজ্যুয়াল স্টুডিও 2017 এ ( প্রকাশিত সংস্করণ 15.4.2 এবং তার বেশি), Tools > Options > Debugging > General > (Check Box) Redirect all Output Window text to Immediate Windowআমার পক্ষে কাজ করেছে।

কয়েকটি নোট: 1. তাত্ক্ষণিক উইন্ডোটি দেখতে, নিশ্চিত করুন যে আপনি ডিবাগিং মোডে রয়েছেন । ২. আপনার ডিসপ্লেতে এখন আরও 3 টি ডিবাগিং সরঞ্জাম থাকা উচিত, যেমন কল স্ট্যাক, ব্রেকপয়েন্টস এবং কমান্ড উইন্ডো, যা নীচে দেখানো হয়েছে:

এখানে চিত্র বর্ণনা লিখুন

শুভ কামনা!


V15.9.4 এ পরীক্ষিত, কাজ করে না (কমপক্ষে কোনও কনসোল অ্যাপ্লিকেশনের জন্য নয়)।
বিটিএ

হুম। আপনি যদি আপনার কনফিগারেশনের স্ক্রিনশটটি ভাগ করতে পারেন তবে আমি আমার শেষের দিকে সমস্যাটি প্রতিলিপি করার চেষ্টা করতে পারি। অন্যথায়, আপনি যদি সমাধানটি সমাধান করেন তবে আপনি ভাগ করতে পারেন। ভিসুয়াল স্টুডিও 15.9.4 জন্য প্রকাশ নোট পাওয়া যাবে docs.microsoft.com/en-us/visualstudio/releasenotes/... , আপনি কিছু সহায়ক টিপস আছে আপনার পরিবেশ উপর নির্ভর করে হতে পারে। ভিজ্যুয়াল স্টুডিও 2017 (আউটপুট উইন্ডো) ডকুমেন্টেশন : ডকস.মাইক্রোসফট.ইন.উস
ভিসুয়ালস্টুডিও

ডাবল চেক করুন যে প্রকল্পটি আপনি পরীক্ষা করছেন এটি একটি "উইন্ডোজ অ্যাপ্লিকেশন" নয় "কনসোল অ্যাপ্লিকেশন" হিসাবে তৈরি হয়েছিল। আপনার পদ্ধতির একটি উইন্ডোজ অ্যাপ্লিকেশন সঙ্গে কাজ করে, কিন্তু এটি ওপি নির্দিষ্ট করে না।
বিটিএ

1

আপনি সরাসরি আপনার বাস্তব অ্যাপ্লিকেশন চালানোর পরিবর্তে চালিত একটি মোড়ক অ্যাপ্লিকেশন তৈরি করতে পারেন। মোড়কের অ্যাপ্লিকেশন স্টাডাউট শুনতে এবং সবকিছু ট্রেস-এ পুনর্নির্দেশ করতে পারে। তারপরে আপনার মোড়ক চালু করতে রান সেটিংস পরিবর্তন করুন এবং চালানোর জন্য আসল অ্যাপ্লিকেশনটিতে যাবেন।

যদি কোনও ডিবাগারটি মোড়কের সাথে সংযুক্ত থাকে তবে আপনার মোড়কে নতুন প্রক্রিয়ায় ডিবাগারটি স্বয়ংক্রিয়ভাবে সংযুক্ত করতে পারে।


0

আমি জানি এটি কেবল অন্য উত্তর, তবে আমি ভেবেছিলাম যে আমি নতুন ওয়েব বিকাশকারীদের জন্য কিছু লিখব, যারা "উইন্ডোজ অ্যাপ্লিকেশনটিতে পরিবর্তন" অংশটি সম্পর্কে বিভ্রান্ত হতে পারেন, কারণ আমি ভিজ্যুয়াল স্টুডিও ২০১৩-তে একটি এমভিসি অ্যাপ্লিকেশনটিকে ডিফল্টরূপে মনে করি ক্লাস লাইব্রেরির একটি আউটপুট ধরণের ডিফল্ট।

ডিফল্টরূপে আমার ওয়েব অ্যাপ্লিকেশনটি "শ্রেণীর পাঠাগার" এর আউটপুট ধরণের হিসাবে সেট করা আছে। আপনি এটি পরিবর্তন করতে হবে না। আমাকে যা করতে হয়েছিল তা হ'ল সরঞ্জামগুলি> বিকল্পগুলি> ডিবাগিং> সমস্ত আউটপুট উইন্ডো পাঠ্যকে তাত্ক্ষণিক উইন্ডোতে পুনর্নির্দেশ করার পরামর্শগুলি অনুসরণ করা। তারপরে আমি System.Diagnostics.Traceউপরের জোয়েল কোহরনের পরামর্শটি ব্যবহার করেছি ।


0

একটি সাধারণ সমাধান যা আমার পক্ষে কাজ করে, কনসোল ক্ষমতা নিয়ে কাজ করার জন্য (রিডকি, স্ট্রিং ফর ফর্ম্যাট এবং আর্গ ইত্যাদি) এবং আউটপুটটি দেখতে এবং সংরক্ষণ করতে:

আমি TextWriter লিখতে যে লেখ Consoleএবং Traceএবং প্রতিস্থাপন Console.Outএটা দিয়ে।

আপনি যদি ডায়ালগটি ব্যবহার করেন -> ডিবাগিং -> "তাত্ক্ষণিক উইন্ডোতে সমস্ত আউটপুট উইন্ডো পাঠ্য পুনর্নির্দেশ করুন" চেক করুন আপনি তা তাত্ক্ষণিক উইন্ডোতে পেয়েছেন এবং বেশ পরিষ্কার।

আমার কোড: আমার কোডের শুরুতে:

   Console.SetOut(new TextHelper());

এবং শ্রেণি:

public class TextHelper : TextWriter
    {
        TextWriter console;

        public TextHelper() {
            console = Console.Out;
        }

        public override Encoding Encoding { get { return this.console.Encoding; } }
        public override void WriteLine(string format, params object[] arg)
        {
            string s = string.Format(format, arg);
            WriteLine(s);
        }
        public override void Write(object value)
        {
            console.Write(value);
            System.Diagnostics.Trace.Write(value);
        }

        public override void WriteLine(object value)
        {
            Write(value);
            Write("\n");
        }
        public override void WriteLine(string value)
        {
            console.WriteLine(value);
            System.Diagnostics.Trace.WriteLine(value);

        }

    }

দ্রষ্টব্য: আমার যা প্রয়োজন তা আমি কেবল ওভাররাইড করি যদি আপনি অন্য ধরণের লেখেন তবে আপনার আরও বেশি ওভাররাইড করা উচিত


0

সংক্রান্ত System.Diagnostics.Debug "আবর্জনা" আউটপুট উইন্ডোতে অনেক উত্পাদক: আপনি আউটপুট উইন্ডোতে ডান ক্লিক করে বন্ধ করে চালু করতে পারেন। যেমন একটি আইটেম "মডিউল লোড বার্তা" রয়েছে যা আপনি অক্ষম করতে চান এবং একটি আইটেম "প্রোগ্রাম আউটপুট" যা আপনি রাখতে চান।


0

এটি করার জন্য আপনার কাছে তিনটি সম্ভাবনা রয়েছে তবে এটি তুচ্ছ নয়। সমস্ত আইডিইর মূল ধারণাটি হ'ল এঁরা সকলেই সন্তানের বাবা (ডিবাগ) প্রক্রিয়া। এই ক্ষেত্রে, স্ট্যান্ডার্ড ইনপুট, আউটপুট এবং ত্রুটি হ্যান্ডলারের সাহায্যে কারসাজি করা সম্ভব। সুতরাং IDE গুলি চাইল্ড অ্যাপ্লিকেশনগুলি শুরু করে এবং অভ্যন্তরীণ আউটপুট উইন্ডোতে পুনর্নির্দেশ করে। আমি আরও একটি সম্ভাবনা সম্পর্কে জানি তবে ভবিষ্যতে এটি আসবে

  1. আপনি ভিজুয়াল স্টুডিওর জন্য আপনার নিজস্ব ডিবাগ ইঞ্জিন বাস্তবায়ন করতে পারেন। অ্যাপ্লিকেশনটির জন্য ডিবাগ ইঞ্জিন নিয়ন্ত্রণ শুরু এবং ডিবাগিং। এর উদাহরণস্বরূপ আপনি ডকস.মাইক্রোসফট.কম ( ভিজ্যুয়াল স্টুডিও ডিবাগ ইঞ্জিনে এটি কীভাবে করবেন তা খুঁজে পেতে পারেন) ) এ
  2. সি ++ এর জন্য স্ট্যান্ড হ্যান্ডলারের সদৃশ ব্যবহার করে ফর্ম অ্যাপ্লিকেশনটি পুনর্নির্দেশ করুন বা সি # এর জন্য কনসোল.সেটআউট (টেক্সট রাইটার) ব্যবহার করুন। যদি আপনাকে আউটপুট উইন্ডোতে মুদ্রণ করতে হয় তবে আপনাকে ভিজ্যুয়াল স্টুডিও এক্সটেনশন এসডিকে ব্যবহার করতে হবে। দ্বিতীয় বৈকল্পিকের উদাহরণ আপনি গিথুব এ খুঁজে পেতে পারেন ।
  3. অ্যাপ্লিকেশন শুরু করুন যা System.Diagnostics.Debug.WriteLine (আউটপুটে মুদ্রণের জন্য) ব্যবহার করে এবং এর চেয়ে শিশু অ্যাপ্লিকেশন শুরু হবে। বাচ্চা শুরু করার সময়, আপনাকে পাইপ সহ স্ট্যান্ডআউটকে পিতামাতার মধ্যে পুনর্নির্দেশ করতে হবে। আপনি এমএসডিএন-তে একটি উদাহরণ খুঁজে পেতে পারেন। তবে আমি মনে করি এটি সর্বোত্তম উপায় নয়।

0

আপনার যদি কনসোল.আরাইটলাইন থেকে আউটপুট প্রয়োজন হয় এবং তাত্ক্ষণিক উইন্ডোতে সমস্ত আউটপুট উইন্ডো পাঠ্যটি কাজ করে না এবং NUnit.Framework ব্যবহার করে আপনাকে ইন্টিগ্রেটেড টেস্ট এক্সপ্লোরার থেকে টেস্টগুলির আউটপুট জানতে হবে, আমাদের সমস্যাটি ইতিমধ্যে VS 2017 এ সমাধান হয়েছে is :

জোন স্কিটের গভীরতার সি # থেকে নেওয়া উদাহরণ: সি স্ক্রিপ্ট থেকে জনের স্কিইটের উদাহরণ থেকে নেওয়া উদাহরণ এটি টেক্সট এক্সপ্লোরার এ এই আউটপুট উত্পাদন করে: টাস্ক এক্সপ্লোরার

আমরা যখন ডানদিকে অতিবাহিত সময়ের অধীন ব্লু আউটপুট-এ ক্লিক করি এবং এটি এটিকে উত্পাদন করে: স্ট্যান্ডার্ড আউটপুট

স্ট্যান্ডার্ড আউটপুট হ'ল আমাদের কাঙ্ক্ষিত আউটপুট, কনসোল.ওয়ারাইটলাইন দ্বারা উত্পাদিত।

এটি ভিএস 2017 তে কনসোল এবং উইন্ডোজ ফর্ম অ্যাপ্লিকেশনগুলির জন্য কাজ করে, তবে কেবলমাত্র ডিবাগ বা রান টেস্ট এক্সপ্লোরারের জন্য উত্পন্ন আউটপুট জন্য; যাইহোক, এটি কনসোলের আমার প্রধান প্রয়োজন W রাইটলাইন আউটপুট।


-1

পরিবর্তে, আপনি একটি পরীক্ষার ফলাফলের আউটপুট সংগ্রহ করতে পারেন।

আপনি ইনপুট সরবরাহ করতে পারবেন না, তবে আপনি সহজেই বিভিন্ন কমান্ড লাইন আর্গুমেন্টগুলি দিয়ে প্রতিটি পরীক্ষা আউটপুট সংগ্রহ করতে পারেন।

যদি আপনার লক্ষ্যটি ডিবাগ হয়, তবে এটি পুনরাবৃত্তিযোগ্য ডিবাগিংয়ের দৃশ্যের প্রস্তাব দেওয়ার একটি কম প্রচেষ্টা।

namespace Commandline.Test
{
    using Microsoft.VisualStudio.TestTools.UnitTesting;

    [TestClass]
    public class CommandlineTests
    {
        [TestMethod]
        public void RunNoArguments()
        {
            Commandline.Program.Main(new string[0]);
        }
    }
}

-7

পদক্ষেপ 1: সলিউশন এক্সপ্লোরারে প্রকল্পের নামের উপর ডান ক্লিক করুন তারপরে উইন্ডো অ্যাপ্লিকেশন হিসাবে আউটপুট টাইপ করুন

পদক্ষেপ 2: ডিবাগ -> বিকল্পসমূহ ..--> ডিবাগিং (প্রসারিত) -> সাধারণ -> সমস্ত আউটপুট উইন্ডো পাঠ্যকে তাত্ক্ষণিক উইন্ডোতে পুনঃনির্দেশ করুন


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