トップ回答者
表示→出力 のウインドウに出力されなくなってしまった、なぜ?

質問
-
Visual Studio 2017 を使っていて、どこかの設定を弄ってしまったのか、何時の間にか
System.Console.WriteLine("..."); の出力が 「表示→出力」のウインドウに出てこなくなってしまいました。
ソリューション全体ではなく、特定のプロジェクトでのみ発生しています。
Program.cs にあるエントリーポイント直後で System.Console.WriteLine("..."); を実行しても出力が無かったので
プロジェクとの設定に問題があるのだろうかと予想しているのですが、どこを設定すれば良いか分かりますでしょうか?
とりあえずググってみたら、ホストプロセスを無効にすると駄目だという話が見つかったのですが、
2017には、プロジェクトのプロパティ→デバック の画面にそれっぽい設定が無いようです。
「ツール→オプション→デバッグ→全てのデバッグ出力」はオンになっています。
ひょっとすると、混乱を招く質問だったかもしれません。Windows Forms アプリケーションです。コンソールアプリではありません。- 編集済み ひろくん17 2017年4月25日 16:10
回答
-
納得いきにくい物ながら自己解決しました。
プロジェクトのプロパティー → 32ビットを優先
このチェックボックスにチェックが入っていない場合、Sysetm.Console は出力ウインドウにメッセージを表示しなくなるようです。
正常表示されていたのは VisualStudio の更新を行う前だったような気がするので、更新内容に何かがあったのかもしれません。
これはVisualStudio2017の不具合のような気がします。
軽く4GByte以上のメモリーを消費するアプリケーションであるため、このチェックは外せないです。
幸い Debug.WriteLine 等回避手段はあるのですが・・・
- 回答としてマーク ひろくん17 2017年4月25日 16:39
すべての返信
-
Console.WriteLine()が表示されることはありません。Debug.WriteLine()もしくはTrace.WriteLine()ではありませんか?
-
表示されることはありませんとはどういう事なのでしょう?
いままでこれで表示てきていましたし、同一ソリューション別プロジェクトでは、これで表示されています。
>Debug.WriteLine() もしくは Trace.WriteLine()で
試したら、こちらは動きました、これ以外の方法だとデバッグ困難な状況に陥っていたので、当座の問題はこれで解決できそうです。
しかし、このまま分からないまま放置するのは少し気持ち悪い感じです。
- 回答の候補に設定 魔界の仮面弁士MVP 2017年4月28日 10:47
- 回答の候補の設定解除 魔界の仮面弁士MVP 2017年4月28日 10:47
-
納得いきにくい物ながら自己解決しました。
プロジェクトのプロパティー → 32ビットを優先
このチェックボックスにチェックが入っていない場合、Sysetm.Console は出力ウインドウにメッセージを表示しなくなるようです。
正常表示されていたのは VisualStudio の更新を行う前だったような気がするので、更新内容に何かがあったのかもしれません。
これはVisualStudio2017の不具合のような気がします。
軽く4GByte以上のメモリーを消費するアプリケーションであるため、このチェックは外せないです。
幸い Debug.WriteLine 等回避手段はあるのですが・・・
- 回答としてマーク ひろくん17 2017年4月25日 16:39
-
コンソールアプリケーションでなく、Windowsアプリケーションの話でしたか。確認したところ再現しました。
しかし、Consoleクラスは
コンソール アプリケーションの標準入力ストリーム、標準出力ストリーム、および標準エラー ストリームを表します。
と説明されており、Windowsアプリケーションにおける動作については何も言及されていませんでした。したがってConsoleクラスの内容が出力ウィンドウに表示されるという動作は非公開機能の可能性があります。そして非公開機能における動作の変更はバグではなく設計が変更されただけの可能性もあります。この点については中の人にしかわかりません。
それとは別に先に説明したように、出力ウィンドウに表示するためのクラスとしてDebug(デバッグビルドのみ)、Trace(デバッグ・リリースビルド両方)が用意されているため、こちらを使うことを推奨します。
- 回答の候補に設定 佐祐理 2017年4月28日 4:31
-
多分公式だと思います。
ある振る舞いが「公式」と言うためには、その振る舞いがドキュメントに書かれていることが前提だと、私は考えています。
「書かれていないがこのように動いている」は「現状たまたまの動き」であり、将来的に変わっても文句を言えないと捉えておかないと痛い目に遭うことがあります。
(ときどき、新しい Windows で動かなくなるアプリケーションはこの手の問題に遭遇していることが多い)
- 編集済み AzuleanMVP, Moderator 2017年4月26日 21:46