我有一个 winform 应用程序,我们试图在没有启动 GUI 的情况下在我们的自动化系统中运行。不幸的是,当我从命令行调用它时,没有执行任何逻辑。下面是Main()
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
if (!ValidateCommandLineArgs())
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new TestResultForm());
}
else
{
HeadlessExecution();
return;
}
}
ValidateCommandLineArgs
只需检查是否cmdline=true
已传递给应用程序,如果没有,则 GUI 会正常启动。当我在 VS2010 中调试(在项目属性文件中设置命令行参数)时,一切都按我的预期工作。但是,当我从命令行(具有相同 arg 的 VS 外部)调用它时,将HeadlessExecution()
被忽略。它肯定是在读取 arg 并进入 else 语句(没有启动 GUI,如果你没有传递任何东西或 pass cmdline=false
),之后我不知道会发生什么,但没有调用核心逻辑byHeadlessExecution()
正在被执行。