'dotnet build' specify main method
You can edit your csproj to define which class to use (inside a PropertyGroup
):
<StartupObject>foo.Program2</StartupObject>
or specify this MSBuild property on the command line via:
$ dotnet build foo.csproj -p:StartupObject=foo.Program2
where
namespace foo
{
class Program2{ public static void Main() {} }
}
Just to add why calling dotnet
with /main
fails with that error, note that it says "Compile with /main
"; /main
is a parameter for the compiler (csc.exe
), not dotnet build
. dotnet build
will invoke MSBuild.exe
which, in turn, will invoke csc.exe
, but you'll need to tell dotnet build
what the startup class is so it can tell csc.exe
. This is what the accepted answer does.
Alternatively, if you were calling csc.exe
directly, you could pass /main
to it like so...
csc.exe Program.cs Test.cs /main:TestNamespace.Test