我正在开发一个应用程序,如果它们对用户没用,会将一些异常消息写入Console
。因此,如果有人通过双击它来运行可执行文件,他们将永远不会看到这些消息。
在Visual Studio中,这些消息显示在输出窗口中,但在我的情况下,我在不安装Visual Studio的计算机上测试我的应用程序,但我仍然想看看是否出现这些消息。
在过去,我只是从命令提示符运行可执行文件,它在Visual Studio中充当输出窗口。虽然出于某种原因我的应用程序,从命令提示符运行时,简单的“返回”并且不显示任何消息。
例如,我可能会这样开始,然后立即返回
D:\>MyApp.exe
D:\>
我不确定是否有一个特定的开关我应该使用(我试过/K
无效)当我运行它时,或者我的应用程序有什么东西导致它返回。
关于如何通过命令行运行它的任何想法,以便我可以看到消息?
此处参考的是我的申请Program.cs
static class Program
{
static Mutex mutex = new Mutex(true, "{12345678-1234-1234-1234-123456789012}");
[STAThread]
static void Main()
{
if (mutex.WaitOne(TimeSpan.Zero, true))
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SplashScreen.ShowSplashScreen();
Application.Run(MainForm.Instance);
mutex.ReleaseMutex();
}
else
NativeMethods.PostMessage((IntPtr)NativeMethods.HWND_BROADCAST, NativeMethods.WM_JTTMAINWINDOW, IntPtr.Zero, IntPtr.Zero);
}
}
答案 0 :(得分:1)
要允许程序输出到控制台,请将其构建为控制台应用程序。
在Visual Studio中,相关链接器选项为/SUBSYSTEM:Console
;或者,在创建新项目时,选择“控制台应用程序”模板,该模板将自动设置链接器选项。
这也意味着如果从命令提示符运行程序,命令提示符将等待程序退出。此外,如果双击程序而不是从命令提示符运行它,将自动创建一个控制台窗口。
(无法使命令提示符等待程序,但如果双击则阻止程序创建控制台窗口。有关详细信息,请参阅this question and its answers。)