正如他们对 Sharpdevelop 所做的那样,当您在debug模式下启动解决方案时,它会启动应用程序和一个控制台(显示日志)。当您在release模式下启动应用程序时,它只会启动应用程序。
当我使用 Visual Studio Gui 修改文件时,.prj最后一个配置会覆盖debug 和release模式。
如何将 Visual Studio 配置为具有与 Sharpdevelop 解决方案相同的行为?
正如他们对 Sharpdevelop 所做的那样,当您在debug模式下启动解决方案时,它会启动应用程序和一个控制台(显示日志)。当您在release模式下启动应用程序时,它只会启动应用程序。
当我使用 Visual Studio Gui 修改文件时,.prj最后一个配置会覆盖debug 和release模式。
如何将 Visual Studio 配置为具有与 Sharpdevelop 解决方案相同的行为?
Visual Studio 项目将应用程序设置组织在三个 PropertyGroup 中。Debug、Release 和一组独立于活动配置的选项。OutputType 在最后一个。
解决方法是简单地自己创建控制台。使用 Application.Startup 事件,如下所示:
public partial class App : Application {
private void Application_Startup(object sender, StartupEventArgs e) {
#if DEBUG
AllocConsole();
Console.WriteLine("Hello world");
#endif
}
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern bool AllocConsole();
}
Visual Studio 没有这种行为。
但是,对于 Windows 窗体/WPF 应用程序,它具有输出工具窗口(菜单 View/Output 以显示它)。所有日志、诊断消息和所有调试都显示在那里。
对于控制台应用程序,应用程序将在控制台(终端窗口)中运行是有意义的。
编辑:如果你想到它,你也可以在 VS 中做类似的事情。在项目属性中,转到 Debug 并作为 Start Action 选择 External Program。在那里你可以输入路径
%WINDIR%/system32/cmd.exe /k "调试 exe 的路径"