web-dev-qa-db-ja.com

Visual Studio 2010でコンソールの出力を見ますか?

私はいくつかの出力を持つ単純なC#プログラムを書いています(Console.WriteLine("...");)。問題は、実行するたびに、プログラムの出力が出力ウィンドウに表示されないことです。

"program output"タグは既にチェックされており、私はすでにすべての出力を中間ウィンドウにリダイレクトしましたが、役に立ちません。

プログラムの出力を表示するにはどうすればよいですか?

問題が私のコードにあるとは思わない。単に文字列とreadline "ala hello world"を出力する単純なプログラムを実行しようとしましたが、まだ何も出力を見ることができません。問題は、私が間違った場所で出力を探しているか、Visual Studioがうまく動作していないことです。

debug.writeメソッドも機能しません。

debug.Writeを使用すると、それはすべてうまくいきますが、以前はうまくいきませんでした。再起動する前に何か問題が発生したか、休憩を取る必要があるかのいずれかです。役に立つコメントをありがとうございました=)

163
r3x

メッセージを出力ウィンドウに書き込むには、 System.Diagnostics.Debug.Write またはSystem.Runtime.InteropServicesメソッドを使用できます。

195
Richard Adnams

確認すべきことがいくつかあります。

  1. console.Write/WriteLineの場合、アプリはコンソールアプリケーションである必要があります。 (ソリューションエクスプローラーでプロジェクトを右クリックして、プロパティを選択し、 "出力タイプを確認します "アプリケーションタブのコンボ - "コンソールアプリケーション "にする必要があります(本当にWindowsアプリケーションやWindowsアプリケーションが必要な場合は注意してください)。クラスライブラリ、Console.WriteLineを取得するためだけにこれをConsole Appに変更しないでください。

  2. System.Diagnostics.Debug.WriteLineを使用して出力ウィンドウに書き込むことができます(VSで出力ウィンドウを表示するには、を参照してください。View|出力)これらの書き込みはDEBUG条件が定義されているビルドでのみ行われることに注意してください(デフォルトでは、デバッグビルドはこれを定義し、リリースビルドは定義しません)。

  3. デバッグ以外のビルドで設定可能な「リスナー」に書き込めるようにしたい場合は、System.Diagnostics.Trace.Writelineを使用できます。 (デフォルトでは、これはDebug.Writelineと同じように、Visual Studioの出力ウィンドウに書き込まれます)

50
JMarsch

プログラムの最後にConsole.Read();を追加してください。アプリケーションが閉じないようにします。そのようにして出力を確認できます。

これは私が掘り下げたコンソールアプリケーションで、処理後で終了する前に停止します。

class Program
{
    static void Main(string[] args)
    {
        DummyObjectList dol = new DummyObjectList(2);
        dol.Add(new DummyObject("test1", (Decimal)25.36));
        dol.Add(new DummyObject("test2", (Decimal)0.698));
        XmlSerializer dolxs = new XmlSerializer(typeof(DummyObjectList));
        dolxs.Serialize(Console.Out, dol);

        Console.WriteLine(string.Empty);
        Console.WriteLine(string.Empty);

        List<DummyObject> dolist = new List<DummyObject>(2);
        dolist.Add(new DummyObject("test1", (Decimal)25.36));
        dolist.Add(new DummyObject("test2", (Decimal)0.698));
        XmlSerializer dolistxs = new XmlSerializer(typeof(List<DummyObject>));
        dolistxs.Serialize(Console.Out, dolist);
        Console.Read(); //  <--- Right here
    }
}

あるいは、単に最後の行にブレークポイントを追加することもできます。

34

押す Ctrl + F5 代わりにプログラムを実行する F5

21
waqasahmed

System.Diagnostics.Debug.WriteLine()は動作しますが、出力のために正しい場所を見ている必要があります。 Visual Studio 2010のメニューバーで、デバッグ - > Windows - > 出力をクリックします。これで、エラーリストの隣にドッキングされている画面の下部に、出力タブがあるはずです。それをクリックして、ドロップダウンリストのデバッグストリームからの出力を表示していることを再確認してください。

P。S:出力ウィンドウはフレッシュインストールで表示されると思いますが、覚えていません。そうでない場合、または誤って閉じた場合は、以下の手順に従ってください。

8
lordcheeto

私は何らかの理由でこれに頻繁に出くわします、そしてなぜこの解決策が言及されていないのか私は理解できません:

クリック表示出力(または単にホールド Ctrl そして、W> Oを押してください

コンソール出力は、エラーリストローカル監視ウィンドウに表示されます。あります。

注:私はVisual Studio 2015を使用しています。

0
Methodician

Windowsコンソールを開いたままにして、標準出力ストリームcoutではなく他の出力方法を使用しないようにするには、「プロジェクト名」 - >「プロパティー」 - >「リンカー」 - >「システム」に進みます。

そこに来たら、サブシステムタブを選択し、コンソール(/ SUBSYSTEM:CONSOLE)をマークします。これが済んだら、コンパイルしたいときはいつでもCtrl + F5(デバッグなしで起動)を使うとコンソールは開いたままになります。 :)

0
Alex