Windows アプリケーションには、コンソール アプリケーションと GUI アプリケーションの 2 つの異なる「モード」またはタイプがあります。マネージド アプリケーションについても、構築方法に関係なく同じことが言えます。
コンソール アプリケーションは、起動時に常に自動的にコンソール ウィンドウを表示します。GUI ウィンドウ (フォームなど) を表示するコードを書くこともできますが、これはオプションです。どちらの方法でも、コンソール ウィンドウは常に表示されます。
GUI アプリケーションは、起動時に何も表示しません。通常、GUI ウィンドウ (フォームなど) を表示するコードを記述しますが、必須ではありません。何も表示しない場合は、UI を表示せずにバックグラウンドで実行されるため、よく「バックグラウンド アプリケーション」と呼ばれるものを作成したことになります。見苦しいコンソール ウィンドウが表示されるため、これはコンソール アプリケーションでは不可能です。
したがって、コンソール ウィンドウが必要ない場合は、コンソール アプリケーションは必要ありません。通常の GUI アプリケーションが必要です。
ここでの課題は、Mono コンパイラを使用してこれを実現する方法を見つけることです。Visual Studio は、このオプションをプロジェクト レベルの設定として公開します。/target
Mono コンパイラには、ビルドするアプリケーションの種類を伝えるフラグが必要です。
/target:exe
(デフォルトのオプション) コンソール アプリケーションをビルドします。
/target:winexe
GUIアプリケーションを構築します
/target:library
ライブラリを構築します (これは実行可能なアプリケーションではなく、再利用可能なコードのチャンクにすぎません)
したがって、コマンド ラインで実行しているコマンドを次のように変更します。
mcs *.cs /target:winexe /r:System.Data,System.Drawing,System.Windows.Forms,...
比較的新しいバージョンの Mono を実行していることも確認する必要があると思います。古いバージョンには、GUI アプリケーションの作成のサポートが含まれていません (/target:winexe
スイッチは実装されていません)。これがバージョン 2.8 の時点で完全にサポートされていることはわかっていますが、利用可能な最新バージョンを使用しない理由はほとんどありません。
私の答えがあなたにとって十分に信頼できない場合は、Mono WinForms FAQに記載されている同じ簡単な修正 (根拠なし) を見つけることができます。