-1

我有一个 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()正在被执行。

4

2 回答 2

1

你说的当然是不可能的。它不能进入​​ else 语句,也不能执行那里找到的代码。当我的代码开始做不可能的事情时,我开始剥离代码,直到它达到我的预期。这有助于定位问题区域。或者我开始添加Trace.WriteLine调用以执行某些代码部分。您可以在没有调试器的情况下使用DebugView 之类的东西查看跟踪输出。

您可能会看一下这个线程,尤其是我的回答,因为我怀疑您对“不工作”的定义可能与控制台输出有关。

于 2012-07-13T21:05:00.140 回答
0

只需将可见性设置为隐藏并让它在不可见的情况下运行

于 2012-07-14T05:30:36.287 回答