Sub Main は、名前空間内で 1 回だけ宣言できます。
エラー ID: BC30738
原因
このエラーは、Visual Basic Application Framework が有効になっている間に独自の Sub Main プロシージャを定義すると、Windows フォーム アプリケーションで頻繁に発生します。 アプリケーション フレームワークによって Main プロシージャが自動的に生成され、別のプロシージャを追加すると競合が発生します。
このエラーを解決するには
次のいずれかの方法を選択します。
オプション 1: アプリケーション フレームワークを使用する (ほとんどの Windows フォーム アプリに推奨)
- カスタム
Sub Mainプロシージャを削除します。 - アプリケーション フレームワークを使用して、スタートアップ フォームと初期化コードを構成します。
- [プロジェクトのプロパティ] の [スタートアップ] フォーム>[アプリケーション] タブを設定します。
- カスタム スタートアップ ロジックには、
My.MyApplicationイベントを使用します。
オプション 2: アプリケーション フレームワークを無効にする
アプリケーションの起動をプログラムで制御する必要がある場合 (たとえば、コマンド ライン引数に基づいて表示するフォームを選択する場合)。
- [プロジェクトのプロパティ>アプリケーションの有効化] タブで、[アプリケーション フレームワークを有効にする] をオフにします。
-
Startup オブジェクトを、
Sub Mainを含むモジュールまたはクラスに設定します。 - 独自の
Sub Mainプロシージャを実装して、アプリケーションの起動を制御します。
オプション 3: 重複するメイン プロシージャを削除する
- プロジェクト全体に 1 つの
Sub Mainプロシージャがあることを確認します。
アクセス My.MyApplication.Main
自動的に生成されたスタートアップ コードにアクセスする必要がある場合は、 WindowsFormsApplicationBase オブジェクトとそのイベント ( Startup、 StartupNextInstance、 Shutdownなど) を操作できます。 アプリケーション フレームワークでは、独自の Main プロシージャを定義せずにアプリケーションの動作をカスタマイズするために、これらのイベントを提供します。
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET