public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
AttachToParentConsole();
Console.WriteLine("Begin init");
}
private const int ATTACH_PARENT_PROCESS = -1;
[DllImport("kernel32.dll")]
private static extern bool AttachConsole(int dwProcessId);
/// <summary>
/// Redirects the console output of the current process to the parent process.
/// </summary>
/// <remarks>
/// Must be called before calls to <see cref="Console.WriteLine()" />.
/// </remarks>
public static void AttachToParentConsole()
{
AttachConsole(ATTACH_PARENT_PROCESS);
}
}
2条答案
按热度按时间kcrjzv8t1#
我现在可以工作了,但我认为这是骑士中的一个bug。
解决方案如下:
1.右键单击项目→属性。
1.在选项卡应用程序→输出类型中,选择“控制台应用程序”而不是“Windows应用程序”。
现在您可以看到输出。
aiazj4mn2#
1.下面是bitbonk的attach your app process到父控制台的解决方案,它支持写入控制台。
1.要将未处理的异常写入控制台,您应该实现事件AppDomain.UnhandledException(捕获所有.NET项目的未处理异常的点)和Application.DispatcherUnhandledException(对于WPF)。