我有一个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中调试(在项目属性文件中设置命令行args)时,一切都按照我的预期进行。但是,当我从命令行(具有相同arg的VS的外部)调用它时,HeadlessExecution()
被忽略。它当然正在读取arg并进入else语句(GUI未启动,如果你没有传递任何东西或传递cmdline=false
),之后我不知道会发生什么但是没有正在执行HeadlessExecution()
调用的核心逻辑。
答案 0 :(得分:1)
你所说的当然是不可能的。它不能输入else语句而不能执行那里找到的代码。当我的代码开始执行不可能的操作时,我开始剥离代码,直到它完成我期望的操作。这有助于找到问题区域。或者我开始添加Trace.WriteLine
调用以执行某些代码。您可以在没有调试器的情况下查看跟踪输出,例如DebugView。
您可能会看一下this thread,尤其是我的答案,因为我怀疑您的“不工作”定义可能与控制台输出有关。
答案 1 :(得分:0)
只需将隐藏设置设置为隐藏状态,然后让它显示为隐藏