コマンドライン引数を使用してバッチファイルからWindowsフォームアプリケーション(C#.NET 4.0)を実行する

c# deployment winforms
コマンドライン引数を使用してバッチファイルからWindowsフォームアプリケーション(C#.NET 4.0)を実行する

私は、Silverlight / ASP.NETの開発者であり、サーバー上のバックグラウンドで実行する最初のWindowsフォームアプリケーションを作成して、データベースにデータを入力しようとしています。 最終的には、これをWindowsサービスにしたいと考えていますが、最初は必要ありません。

このアプリケーションの5つのインスタンスを実行するためにバッチファイルを作成し、5つのRESTfulエンドポイントにURLを渡す必要があります。 そのため、setup.exeを作成するアプリを公開しました。 それをインストールした後、私は指すアイテムを持っています

C:\ Users \ mi2dev \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Microsoft \、.appref-msファイル

この時点で何をすべきかわかりません。 ランニング:

「C:\ Users \ mi2dev \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Microsoft \ StreamingApp.appref-ms」-「http://www.myURL.com」はコマンドウィンドウを短時間表示しますが、アプリは実行されず、データはDBに入力されません。

私はここで何が足りないのですか?

  1  0


ベストアンサー

アプリケーションは.exe形式であるため。 そして、winformがコマンドライン引数を受け入れるようにし(mainメソッドをチェック)、Form ctorもparamsを受け入れるようにします。 次に、他のコマンドと同じようにcmd行で起動しますが、ここではファイルが存在するディレクトリに移動するためだけです。

バッチの場合は、startコマンドの後にプログラム名と引数を続けて使用します

1


アプリケーション内で何が起こっているのかを理解するのは困難です。 特定のパラメーターを受け取ったときにそこで何が起こっているのかを理解するには、デバッグする必要があります。 したがって、 `EXE`をデバッグすることをお勧めします。 これを行うには、「EXE」プロジェクトのプロパティに移動し、「CommandLineArguments」の「DEBUG」タブを選択してパラメーター文字列を挿入します。 それを `DEBUG`で実行すると、問題を解決できることを願っています。

image:https://i.stack.imgur.com/9wKIE.jpg [スクリーン]

デバッグ後、なぜそのように動作するのかまだ明確でない場合は、SOに戻ってください:)

1


Windowsフォームアプリケーションをバッチファイルから使用する予定で、ダブルクリックで開いた場合とは異なるモードでapplicationmが動作することを想像する場合、通常の方法はコマンドラインを解析することです(引数、メインメソッドでも使用可能)パラメータとして)およびUIの読み込みをまったく回避します。

実際、アプリケーションを適切に記述した場合、UIはUIのみを管理し、データベース操作とデータ変換のロジック全体を含みません。

あなたができることは、コマンドラインパラメータがある場合はMainメソッド内をチェックすることであり、あなたが見つけた特別なパラメータのいずれかを検出した場合は、 `Application.Run(new Form1(…​));`を呼び出すことさえ本当に避けますユーザーインターフェイスなしでバッチモードで作業を開始します。

バッチモードまたはUIモードで使用するのと同じロジックをヘルパークラスでラップできます(多くの場合、ビジネスマネージャーまたはビジネスロジックとも呼ばれます…​ コードの重複はありませんが、単にUIまたはバッチがこれらのクラスを適切に呼び出します。

1


タイトルとURLをコピーしました