The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.


Specifies the class or module that contains the Sub Main procedure.



Required. A full qualification to the class or module that contains the Sub Main procedure to be called when the program starts. This may be in the form /main:module or /main:namespace.module.

Use this option when creating an executable file or Windows executable program. If the /main option is omitted, the compiler searches for a valid shared Sub Main in all public classes and modules.

See Main Procedure in Visual Basic for a discussion of the various forms of the Main procedure.

When location is a class that inherits from Form, the compiler provides a default Main procedure that starts the application if the class has no Main procedure. This lets you compile code at the command line that was created in the development environment.

' Compile with /r:System.dll,SYSTEM.WINDOWS.FORMS.DLL /main:MyC
Public Class MyC
    Inherits System.Windows.Forms.Form
End Class

To set /main in the Visual Studio integrated development environment

  1. Have a project selected in Solution Explorer. On the Project menu, click Properties.

    For more information, see Introduction to the Project Designer.

  2. Click the Application tab.

  3. Make sure the Enable application framework checkbox is not checked.

  4. Modify the value in the Startup object box.

The following code compiles T2.vb and T3.vb, specifying that the Sub Main procedure will be found in the Test2 class.

vbc t2.vb t3.vb /main:Test2
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

© 2015 Microsoft