(VB.Net)VB.NETでスタートアップを Main() にする方法 - tsukimisoba/Blog GitHub Wiki
2025/05/21 記載
-
Visual Studio 17.3.0以降では、プロジェクトのプロパティメニューが変更され、
Main()
をスタートアップオブジェクトに指定できない場合があります。 -
解決策:
.vbproj
を手動で編集します(後述 手順 7. 以降を実施)。
- **
Sub Main
の作成 - ソリューションエクスプローラーでプロジェクトを選択
- [プロジェクト]メニュー → [プロパティ] をクリック
- [アプリケーション]タブを開く
- [アプリケーションフレームワークを有効にする] のチェックを外す
-
[スタートアップオブジェクト] を
Sub Main
に変更
- **
.vbproj
ファイル** の設定確認/変更 -
再度プロジェクトの [スタートアップオブジェクト] を
Sub Main
に変更
コード例(1)
Main()
メソッドを作成し、アプリケーションのエントリポイントとして設定します。
Module Program
Sub Main()
' フォームを起動
Application.Run(New MainForm())
End Sub
End Module
コード例(2)
Main()
でコマンドライン引数を受け取る場合は、以下のように定義します。
Module Program
Sub Main(args() As String)
If args.Length > 0 Then
Console.WriteLine("引数: " & String.Join(", ", args))
End If
' フォームを起動
Application.Run(New MainForm())
End Sub
End Module
ポイント:
-
args()
を使うことで、コマンドライン引数を処理できる。
Visual Studioのプロジェクト設定で、スタートアップオブジェクトをSub Main
に変更します。
プロジェクトの .vbproj
ファイルを開き、以下の設定か確認します。
設定が相違している場合は修正または追記します。
<PropertyGroup>
<MyType>WindowsFormsWithCustomSubMain</MyType>
<StartupObject>Program</StartupObject>
</PropertyGroup>
ポイント:
-
StartupObject
にProgram
を指定することで、Main()
メソッドをエントリポイントとして認識させる。
-
再度プロジェクトの [スタートアップオブジェクト] を
Sub Main
に変更
この方法で、VB.NETのMain()
プロシージャーをクラスで定義できます
詳細な情報はこちらも参考にしてください。