次の方法で共有


'Sub Main' が '<namespace>' で複数回宣言されています: <message>

Sub Main は、名前空間内で 1 回だけ宣言できます。

エラー ID: BC30738

原因

このエラーは、Visual Basic Application Framework が有効になっている間に独自の Sub Main プロシージャを定義すると、Windows フォーム アプリケーションで頻繁に発生します。 アプリケーション フレームワークによって Main プロシージャが自動的に生成され、別のプロシージャを追加すると競合が発生します。

このエラーを解決するには

次のいずれかの方法を選択します。

  • カスタム Sub Main プロシージャを削除します。
  • アプリケーション フレームワークを使用して、スタートアップ フォームと初期化コードを構成します。
    • [プロジェクトのプロパティ] の [スタートアップ] フォーム>[アプリケーション] タブを設定します。
    • カスタム スタートアップ ロジックには、 My.MyApplication イベントを使用します。

オプション 2: アプリケーション フレームワークを無効にする

アプリケーションの起動をプログラムで制御する必要がある場合 (たとえば、コマンド ライン引数に基づいて表示するフォームを選択する場合)。

  • [プロジェクトのプロパティ>アプリケーションの有効化] タブで、[アプリケーション フレームワークを有効にする] をオフにします。
  • Startup オブジェクトを、Sub Mainを含むモジュールまたはクラスに設定します。
  • 独自の Sub Main プロシージャを実装して、アプリケーションの起動を制御します。

オプション 3: 重複するメイン プロシージャを削除する

  • プロジェクト全体に 1 つの Sub Main プロシージャがあることを確認します。

アクセス My.MyApplication.Main

自動的に生成されたスタートアップ コードにアクセスする必要がある場合は、 WindowsFormsApplicationBase オブジェクトとそのイベント ( StartupStartupNextInstanceShutdownなど) を操作できます。 アプリケーション フレームワークでは、独自の Main プロシージャを定義せずにアプリケーションの動作をカスタマイズするために、これらのイベントを提供します。

こちらも参照ください