-1

GUIを起動せずに自動化システム内で実行しようとしているwinformアプリケーションがあります。残念ながら、コマンドラインから呼び出すと、ロジックは実行されていません。以下は、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 でデバッグすると (プロジェクトのプロパティ ファイルでコマンド ライン引数を設定すると)、すべてが期待どおりに機能します。ただし、コマンド ライン (同じ引数を持つ VS の外部) から呼び出すと、HeadlessExecution()無視されます。それは確かに引数を読み込んでelseステートメントに入ります(GUIは起動されず、何も渡さないか渡す場合ですcmdline=false)、その後何が起こるかわかりませんが、呼び出されるコアロジックはありませんによってHeadlessExecution()実行されています。

4

2 に答える 2

1

あなたの言っていることはもちろん不可能です。else ステートメントに入ることはできず、そこにあるコードを実行することはできません。私のコードが不可能なことをし始めたとき、私は期待どおりの結果が得られるまでコードを削除し始めます。これは、問題のある領域を特定するのに役立ちます。Trace.WriteLineまたは、コードの特定の部分が実行されるように呼び出しを追加し始めます。DebugViewなどを使用して、デバッガーなしでトレース出力を表示できます。

「機能していない」という定義がコンソール出力に関連している可能性があると思われるため、このスレッド、特に私の答えをご覧になる場合があります。

于 2012-07-13T21:05:00.140 に答える
0

単純に可視性を非表示に設定し、表示されないようにします

于 2012-07-14T05:30:36.287 に答える