要立即陷入困境,这是一个非常基本的例子:
using System;
using System.Windows.Forms;
class test
{
static void Main()
{
Console.WriteLine("test");
MessageBox.Show("test");
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用默认选项(在命令行使用csc)编译它,正如预期的那样,它将编译到控制台应用程序.另外,因为我导入了System.Windows.Forms,它还会显示一个消息框.
现在,如果我使用该选项/target:winexe,我认为Windows Application与在项目选项中选择相同,正如预期的那样,我只会看到消息框而没有控制台输出.
(事实上,从命令行启动它的那一刻,我可以在应用程序完成之前发出下一个命令).
所以,我的问题是 - 我知道你可以从控制台应用程序获得"windows"/表单输出,但是无论如何从Windows应用程序显示控制台?
我有一个简单的应用程序,我希望通过交换机自动化.但是,当我通过开关运行它时,我真的不希望显示用户界面.我只是想让它运行,做它的工作,在控制台中打印出东西,然后退出.另一方面,如果我不使用任何开关运行它,我希望弹出用户界面.在这种情况下,我真的不希望在后台闲置一个控制台窗口.
有什么方法可以做到这一点,还是我必须创建两个单独的项目,一个控制台应用程序和一个Windows应用程序?