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()
実行されています。