正如他们对 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 的路径"