-main (C# Compiler Options)

This option specifies the class that contains the entry point to the program, if more than one class contains a Main method.

Syntax

-main:class

Arguments

class
The type that contains the Main method.
The provided class name must be fully qualified; it must include the full namespace containing the class, followed by the class name. For example, when the Main method is located inside the Program class in the MyApplication.Core namespace, the compiler option has to be -main:MyApplication.Core.Program.

Remarks

If your compilation includes more than one type with a Main method, you can specify which type contains the Main method that you want to use as the entry point into the program.

This option is for use when compiling an .exe file.

To set this compiler option in the Visual Studio development environment

  1. Open the project's Properties page.

  2. Click the Application property page.

  3. Modify the Startup object property.

    To set this compiler option programmatically, see StartupObject.

To set this compiler option by manually editing the .csproj file

You can set this option by editing the .csproj file and adding an element StartupObject inside the PropertyGroup section. For example:

  <PropertyGroup>
    ...
    <StartupObject>MyApplication.Core.Program</StartupObject>
  </PropertyGroup>

Example

Compile t2.cs and t3.cs, specifying that the Main method will be found in Test2:

csc t2.cs t3.cs -main:Test2

See also