ASP.NET Core Web API: el programa no contiene un método 'Principal' estático adecuado para un punto de entrada

Estoy trabajando en una API web ASP.NET Core que hace referencia a otros proyectos (csproj) dentro de una solución grande. La API web de ASP.NET Core se construye en Visual Studio 2015 y usa msbuild en un símbolo del sistema "en mi máquina" :-)

msbuild SomeWebAPI.xproj

  Compilation succeeded.
  33 Warning(s)
  0 Error(s)

Time elapsed 00:00:01.7740626

Done Building Project 
.
.
Build succeeded.

El problema es que no se basa en nuestro servidor de compilación. Mismo comando de msbuild, misma versión de msbuild, resultado diferente:

msbuild SomeWebAPI.xproj

error CS5001: Program does not contain a static 'Main' method suitable for 
an entry point [D:\TeamCity\buildAgent\work\8120f5584932b96b\S
SomeWebAPI\SomeWebAPI.xproj]

Compilation failed.
  0 Warning(s)
  1 Error(s)

Time elapsed 00:00:03.3428080

Done Building Project 

"D:\TeamCity\buildAgent\work\8120f5584932b96b\SomeWebAPI\SomeWebAPI.xproj" 
(default targets) -- FAILED.

Build FAILED.

Al ser un webapi, no tiene sentido agregar un método 'Main' estático y el hecho de que funcione "en mi máquina" pero no en nuestro servidor de compilación me desconcierta. ¿Alguna sugerencia? Avíseme si necesita más información, código, project.json o cualquier cosa que pueda ayudarlo a responder :-)

Actualizar:

Basado en el comentario de @Tseng, agregué un método principal al inicio:

// Entry point for the application.
public static void Main(string[] args)
{
    var host = new WebHostBuilder()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseKestrel()
        .UseStartup<Startup>()
        .Build();

    host.Run();
}

Pero entonces no puedo construir el proyecto en mi propia máquina:

C:\test\path\SomeWebAPI\Program.cs(8,28): error CS0017: Program has more 
than one entry point defined. Compile with /main to specify the type that 
contains the entry point. [C:\test\path\SomeWebAPI\SomeWebAPI.xproj]

Eso señaló el Program.cs con una copia casi exacta del método principal anterior. Aparentemente, la plantilla de proyecto que utilicé hace un par de meses puso el método principal en la clase Programa. Obviamente, @Tseng tiene razón y me equivoqué. Desafortunadamente, eso me devolvió a la pregunta original. ¿Por qué el proyecto se construye en "mi máquina" pero no en nuestro servidor de compilación? La respuesta obvia, "falta el método 'Principal' es de hecho correcto, dado que, por alguna razón, el archivo Program.cs no fue extraído del control de origen por TeamCity. Pero esa es otra historia ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta