Saat melakukan aplikasi konsol di Java dengan Eclipse, saya melihat keluarannya dimasukkan ke dalam kotak teks di IDE itu sendiri, alih-alih memunculkan konsol seperti di Visual Studio. Ini berguna, karena bahkan setelah program keluar, saya masih dapat memanfaatkan teks yang tertulis di dalamnya, karena tidak terhapus sampai saya menjalankannya lagi. Apakah mungkin untuk mencapai hal seperti itu dengan Visual Studio? Saya tahu itu daripada melakukan
System.Console.WriteLine(str);
dapat saya lakukan
System.Diagnostics.Debug.WriteLine(str);
tetapi itu tidak persis sama, karena Anda mendapatkan banyak "sampah" di jendela Output, karena semua simbol yang dimuat dan semacamnya.
Lebih baik lagi, mungkinkah semuanya dilakukan di IDE itu sendiri, saat Anda menjalankan aplikasi, alih-alih menjalankan konsol?
c#
visual-studio
console
melahap elysium
sumber
sumber
Jawaban:
Pada Tools -> Visual Studio Options Dialog -> Debugging -> Check the "Redirect All Output Window Text to the Immediate Window".
sumber
Dalam Visual Studio Options Dialog -> Debugging -> Centang "Redirect All Output Window Text to the Immediate Window". Lalu pergi ke pengaturan proyek Anda dan ubah jenis dari "Aplikasi Konsol" menjadi "Aplikasi Windows". Pada saat itu Visual Studio tidak membuka jendela konsol lagi, dan output diarahkan ke jendela Output di Visual Studio. Namun, Anda tidak dapat melakukan apa pun yang "kreatif", seperti meminta kunci atau input teks, atau membersihkan konsol - Anda akan mendapatkan pengecualian waktu proses.
sumber
Console.ReadKey()
benar-benar konyol!Output type
aplikasi saya kembali dari Aplikasi Windows ke Konsol maka jendela konsol tidak ada tempat untuk dilihat ketika saya menjalankan aplikasi saya. Saya dapat men-debug aplikasi danMain
titik masuk juga terkena. Saya juga mengembalikan pengaturan opsi yang disebutkan dalam posting ini tetapi tidak berhasil. Saya menggunakan edisi komunitas VS 2017. Saya kehilangan jendela konsol saya (terisak).Menggunakan
System.Diagnostics.Trace
Bergantung pada pemroses yang Anda lampirkan, keluaran pelacakan bisa masuk ke jendela debug, konsol, file, database, atau semuanya sekaligus. Kemungkinannya benar-benar tidak terbatas, karena menerapkan TraceListener Anda sendiri sangat sederhana.
sumber
Saatnya mengecek rilis terbaru untuk Visual Studio, kawan. Solusi yang paling disarankan yang sebelumnya tidak berhasil untuk beberapa dari Anda mungkin berhasil sekarang.
Dalam Visual Studio 2017 ( Rilis Versi 15.4.2 dan yang lebih baru), akan
Tools > Options > Debugging > General > (Check Box) Redirect all Output Window text to Immediate Window
berhasil untuk saya.Beberapa Catatan: 1. Untuk melihat Jendela Segera, pastikan Anda berada dalam mode Debugging . 2. Sekarang seharusnya ada 3 alat debugging lain yang tersedia yang Anda inginkan, yaitu Call Stack, Breakpoints, dan Command Window, seperti yang ditunjukkan di bawah ini:
Semoga sukses!
sumber
Anda dapat membuat aplikasi pembungkus yang Anda jalankan daripada langsung menjalankan aplikasi Anda yang sebenarnya. Aplikasi wrapper dapat mendengarkan stdout dan mengarahkan semuanya ke Trace. Kemudian ubah pengaturan proses untuk meluncurkan pembungkus Anda dan meneruskan jalur ke aplikasi nyata untuk dijalankan.
Anda juga dapat meminta wrapper untuk otomatis memasang debugger ke proses baru jika debugger dipasang ke wrapper.
sumber
Saya tahu ini hanyalah jawaban lain, tetapi saya pikir saya akan menulis sesuatu untuk Pengembang Web baru, yang mungkin bingung tentang bagian "Ubah ke Aplikasi Windows", karena saya pikir secara default aplikasi MVC di Visual Studio 2013 default ke Output Type of Class Library.
Aplikasi Web saya secara default disetel sebagai tipe keluaran "Perpustakaan Kelas." Anda tidak perlu mengubahnya. Yang harus saya lakukan adalah mengikuti saran untuk membuka Tools> Options> Debugging> Redirect all Output Window text to the Immediate Window. Saya kemudian menggunakan
System.Diagnostics.Trace
saran dari Joel Coehoorn di atas.sumber
Solusi sederhana yang bekerja untuk saya, untuk bekerja dengan kemampuan konsol (ReadKey, String dengan Format dan arg dll) dan untuk melihat dan menyimpan hasilnya:
Saya menulis TextWriter yang menulis ke
Console
dan keTrace
dan menggantinyaConsole.Out
dengan itu.jika Anda menggunakan Dialog -> Debugging -> Centang "Redirect All Output Window Text to the Immediate Window" Anda mendapatkannya di Immediate Window dan cukup bersih.
kode saya: di awal kode saya:
dan kelasnya:
Catatan: Saya mengganti apa yang saya butuhkan jadi jika Anda menulis jenis lain, Anda harus menimpa lebih banyak
sumber
mengenai
System.Diagnostics.Debug
menghasilkan banyak "sampah" di jendela Keluaran: Anda dapat mematikannya dengan mengklik kanan di jendela keluaran. Misalnya ada item "Module Load Messages" yang ingin Anda nonaktifkan dan item "Program Output" yang ingin Anda simpan.sumber
Anda memiliki tiga kemungkinan untuk melakukan ini, tetapi ini tidak sepele. Ide utama dari semua IDE adalah bahwa semuanya adalah induk dari proses anak (debug). Dalam hal ini, dimungkinkan untuk memanipulasi dengan input standar, output dan penanganan kesalahan. Jadi IDE memulai aplikasi anak dan mengalihkan ke jendela keluaran internal. Saya tahu tentang satu kemungkinan lagi, tetapi itu akan datang di masa depan
sumber
Jika Anda membutuhkan output dari Console.WriteLine, dan Redirect All Output Window Text to the Immediate Window tidak berfungsi dan Anda perlu mengetahui output Test dari Integrated Test Explorer, menggunakan NUnit.Framework masalah kita sudah diselesaikan di VS 2017 :
Contoh diambil dari C # In Depth oleh Jon Skeet: Ini menghasilkan output ini di Text Explorer:
Ketika kita mengklik Blue Output, di bawah Elapsed Time, di kanan, dan menghasilkan ini:
Output Standar adalah Output yang kami inginkan, diproduksi oleh Console.WriteLine.
Ini berfungsi untuk Konsol dan untuk Aplikasi Formulir Windows di VS 2017, tetapi hanya untuk Output yang dihasilkan untuk Test Explorer di Debug atau Run; bagaimanapun, ini adalah kebutuhan utama saya akan keluaran Console.WriteLine.
sumber
Sebagai gantinya, Anda dapat mengumpulkan output dalam hasil tes.
Anda tidak dapat memberikan masukan, tetapi Anda dapat dengan mudah memberikan beberapa pengujian dengan argumen baris perintah yang berbeda, setiap pengujian mengumpulkan keluaran.
Jika tujuan Anda adalah men-debug, ini adalah cara yang mudah untuk menawarkan skenario debugging yang berulang.
sumber
Langkah 1: Klik kanan pada Project Name di Solution Explorer lalu buat Output type sebagai Window Application
Langkah 2: Debug -> Options ..--> Debugging (Expand) -> General -> Redirect All Output Window Text to the Immediate Window
sumber