none
表示→出力 のウインドウに出力されなくなってしまった、なぜ? RRS feed

  • 質問

  • Visual Studio 2017 を使っていて、どこかの設定を弄ってしまったのか、何時の間にか

    System.Console.WriteLine("..."); の出力が 「表示→出力」のウインドウに出てこなくなってしまいました。

    ソリューション全体ではなく、特定のプロジェクトでのみ発生しています。

    Program.cs にあるエントリーポイント直後で System.Console.WriteLine("..."); を実行しても出力が無かったので

    プロジェクとの設定に問題があるのだろうかと予想しているのですが、どこを設定すれば良いか分かりますでしょうか?

    とりあえずググってみたら、ホストプロセスを無効にすると駄目だという話が見つかったのですが、

    2017には、プロジェクトのプロパティ→デバック の画面にそれっぽい設定が無いようです。

    「ツール→オプション→デバッグ→全てのデバッグ出力」はオンになっています。

    ひょっとすると、混乱を招く質問だったかもしれません。Windows Forms アプリケーションです。コンソールアプリではありません。
    2017年4月25日 11:26

回答

  • 納得いきにくい物ながら自己解決しました。

    プロジェクトのプロパティー → 32ビットを優先

    このチェックボックスにチェックが入っていない場合、Sysetm.Console は出力ウインドウにメッセージを表示しなくなるようです。

    正常表示されていたのは VisualStudio の更新を行う前だったような気がするので、更新内容に何かがあったのかもしれません。

    これはVisualStudio2017の不具合のような気がします。

    軽く4GByte以上のメモリーを消費するアプリケーションであるため、このチェックは外せないです。

    幸い Debug.WriteLine 等回避手段はあるのですが・・・

    2017年4月25日 16:38

すべての返信

  • Console.WriteLine()が表示されることはありません。Debug.WriteLine()もしくはTrace.WriteLine()ではありませんか?
    2017年4月25日 13:30
  • 表示されることはありませんとはどういう事なのでしょう?

    いままでこれで表示てきていましたし、同一ソリューション別プロジェクトでは、これで表示されています。

    >Debug.WriteLine() もしくは Trace.WriteLine()で

    試したら、こちらは動きました、これ以外の方法だとデバッグ困難な状況に陥っていたので、当座の問題はこれで解決できそうです。

    しかし、このまま分からないまま放置するのは少し気持ち悪い感じです。


    2017年4月25日 15:43
  • 納得いきにくい物ながら自己解決しました。

    プロジェクトのプロパティー → 32ビットを優先

    このチェックボックスにチェックが入っていない場合、Sysetm.Console は出力ウインドウにメッセージを表示しなくなるようです。

    正常表示されていたのは VisualStudio の更新を行う前だったような気がするので、更新内容に何かがあったのかもしれません。

    これはVisualStudio2017の不具合のような気がします。

    軽く4GByte以上のメモリーを消費するアプリケーションであるため、このチェックは外せないです。

    幸い Debug.WriteLine 等回避手段はあるのですが・・・

    2017年4月25日 16:38
  • コンソールアプリケーションでなく、Windowsアプリケーションの話でしたか。確認したところ再現しました。

    しかし、Consoleクラス

    コンソール アプリケーションの標準入力ストリーム、標準出力ストリーム、および標準エラー ストリームを表します。

    と説明されており、Windowsアプリケーションにおける動作については何も言及されていませんでした。したがってConsoleクラスの内容が出力ウィンドウに表示されるという動作は非公開機能の可能性があります。そして非公開機能における動作の変更はバグではなく設計が変更されただけの可能性あります。この点については中の人にしかわかりません。

    それとは別に先に説明したように、出力ウィンドウに表示するためのクラスとしてDebug(デバッグビルドのみ)、Trace(デバッグ・リリースビルド両方)が用意されているため、こちらを使うことを推奨します。

    • 回答の候補に設定 佐祐理 2017年4月28日 4:31
    2017年4月26日 2:24
  • 多分公式だと思います。

    ある振る舞いが「公式」と言うためには、その振る舞いがドキュメントに書かれていることが前提だと、私は考えています。
    「書かれていないがこのように動いている」は「現状たまたまの動き」であり、将来的に変わっても文句を言えないと捉えておかないと痛い目に遭うことがあります。
    (ときどき、新しい Windows で動かなくなるアプリケーションはこの手の問題に遭遇していることが多い)

    2017年4月26日 21:46
    モデレータ
  • ひろくん17 さん、こんにちは
    フォーラム オペレーターの立花楓です。

    このたびは MSDN フォーラムをご利用いただきありがとうございます。

    当フォーラムは、回答者の経験から様々な情報やアドバイスが集まる場です。
    様々な見解がありますが、今後とも情報交換の場としてご利用いただければ幸いです。


    よろしくお願いいたします。


    MSDN/TechNet Community Support 立花楓

    2017年4月28日 1:12
    モデレータ