この出力コンソール-アプリケーションのVisual Studioでのコンソール
-
23-09-2019 - |
質問
うコンソール-アプリケーションのJava Eclipseとで、出力されているテキストボックスのIDE自身の変わりに、コンソールが出るようにできます。このタとしても、プログラムは終了しまいにも活用されているテキストで書いたので、そのままだ消えるまで実行しを設定することができます。はを達成することが可能となりうるとVisual Studio?知っているそうでない
System.Console.WriteLine(str);
によって全然違います
System.Diagnostics.Debug.WriteLine(str);
ものではなかなか同じことをしてたくさんの"迷惑"の出力ウィンドウとしてすべてのロードシンボルです。
ではできても、IDE、実際の応用ではなく、コンソール。
解決
ツールで - > [Visual Studioの[オプション]ダイアログ - > [デバッグ - >「イミディエイトウィンドウにリダイレクトすべての出力ウィンドウテキスト」をチェック
他のヒント
のVisual Studioののオプション]ダイアログで - >デバッグ - > "イミディエイトウィンドウにリダイレクトすべての出力ウィンドウテキスト" を確認してください。次に、あなたのプロジェクトの設定に移動し、「Windowsアプリケーション」に「コンソールアプリケーション」からタイプを変更。その時点で、Visual Studioは、もはやコンソールウィンドウを開かないと、出力は、Visual Studioの[出力]ウィンドウにリダイレクトされます。あなたは実行時例外を取得します。
- しかし、あなたは、キーまたはテキスト入力を要求する、またはコンソールをクリアするように、「創造」何もすることができません。は、添付何リスナーに応じて、トレース出力を一度にデバッグウィンドウ、コンソール、ファイル、データベース、またはすべてに行くことができます。あなた自身のTraceListenerは非常に簡単です実装するような可能性は、文字通り無限大です。
あなたが直接あなたの本当のアプリを実行しているのではなく、実行することをラッパーアプリケーションを作成することができます。ラッパーアプリケーションは、トレースのstdoutとリダイレクトすべてに耳を傾けることができます。次に、あなたのラッパーを起動し、実行するために、実際のアプリへのパスを渡すために、実行設定を変更します。
デバッガがラッパーに接続されている場合にもラッパー新しいプロセスにデバッガを自動的に添付する可能性があります。
私は、これは単なる別の答えですけど、私は、デフォルトでMVCアプリケーションを考えているため、一部の「Windowsアプリケーションへの変更」について混乱してしまうかもしれません新しいWeb開発者のためのダウン何かを書くだろうと思ってクラスライブラリの出力タイプへのVisual Studio 2013のデフォルト値。
デフォルトでは、私のWebアプリケーションは、出力タイプとして設定されている「クラスライブラリ。」あなたはそれを変更する必要はありません。すべて私がしなければならなかったツールに行くのアドバイスに従ってください> [オプション]> [デバッグ]> [リダイレクトイミディエイトウィンドウにすべての出力ウィンドウのテキストでした。私は、上記のジョエルCoehoornによってSystem.Diagnostics.Trace
の提案を使用していました。
簡単な解決策は私のために働き、コンソール能力(ReadKey、フォーマットおよびArgなどとString)での仕事にして出力を参照して保存すること:
を私は、その書き込みConsole
へとTrace
にしたTextWriterを書いて、それを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);
}
}
注:私はあなたが他のタイプを記述する場合は、より多くの
をオーバーライドする必要がありますので、必要なものだけを上書きしますその代わり、あなたは試験結果で出力を収集することができます。
あなたが入力を供給することはできませんが、簡単に別のコマンドライン引数を持ついくつかのテスト、出力を収集し、各テストを提供することができます。
あなたの目標は、デバッグしている場合、これは繰り返し可能なデバッグのシナリオを提供する低努力の方法です。
namespace Commandline.Test
{
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class CommandlineTests
{
[TestMethod]
public void RunNoArguments()
{
Commandline.Program.Main(new string[0]);
}
}
}
この時チェックインまで最新のリリース/sのためのVisual Studio?最もが解決しなかった作品の一部まれるようになる。
Visual Studio2017年リリース版15.4.2 以上)、 Tools > Options > Debugging > General > (Check Box) Redirect all Output Window text to Immediate Window
勤務しました。
Few Notes:1.の当面の画面で、確認くださいますようお願いい デバッグ モードになります。2.あるすべきである3その他のデバッグツールにご自由にご利用頂けますと、スタック内のブレークポイントは、コマンドウィンドウは以下の通りです。
お祈りしています!
手順1:ソリューションエクスプローラでプロジェクト名を右クリックして[ウィンドウアプリケーション
として出力タイプを作りますステップ2:デバッグ - >オプション..-->デバッグ(展開) - >一般 - >イミディエイトウィンドウにリダイレクトすべての出力ウィンドウのテキスト