プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2018/03/04

コンソールから WPF アプリケーションを起動した場合にコンソールに何も出力されない

event_note2018/03/03 17:32

WindowsForms や WPF などでアプリケーションを作成した場合、Console.WriteLine と書いてもコンソールに何も出力されません。
コンソールからアプリケーションを起動した場合もです。

私はよくデスクトップアプリケーションにも CLI で操作できるようなモードを付与するので、コンソールからアプリケーションを起動した場合くらいはコンソールに出力してほしいものです。

調べたところ、これを行うには親となるコンソールにアタッチする必要があるようです。

例えば、WPF アプリケーションの場合 App.xaml.cs で以下のように記述します。

public partial class App : Application
{
    [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
    public static extern bool AttachConsole(int processId);

    [STAThread]
    public static int Main(string[] args)
    {
        AttachConsole(-1);

        App app = new App();
        app.InitializeComponent();
        return app.Run();
    }
}

参考 URL