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();
}
}