El programa no contiene un método estático 'Principal' adecuado para un punto de entrada

169

De repente, todo mi proyecto dejó de compilarse, mostrando el siguiente mensaje:

El programa 'path_to_obj_project_folder' no contiene un método estático 'Principal' adecuado para un punto de entrada

No hice cambios en las propiedades del proyecto, solo agregué algunas clases, moví algunas otras clases a las carpetas. Es un proyecto de aplicación WPF, por lo que debería estar todo bien. El punto de entrada es donde debería estar, el archivo App.xaml no se modificó en absoluto :(

¿Qué debo hacer para que funcione nuevamente?

Señor anderson
fuente

Respuestas:

432

Verifique las propiedades de App.xaml . ¿Es el Build Actionquieto ApplicationDefinition?

Kent Boogaart
fuente
10
Gracias, eso solucionó parcialmente el problema. Había copiado todos los archivos de un proyecto antiguo a uno nuevo Windows Store App, y Build Actionestaba configurado en Pagelugar de ApplicationDefinition. Volví a ApplicationDefinition, pero también tuve que eliminar la carpeta obj\Debug.
Richard H
44
+1: ¡Impresionante! Verdaderamente un salvavidas. Estaba a punto de crear un nuevo proyecto y copiar todo, pero esto funcionó. Qué he aprendido: no te metas con App.xaml ... Muerde.
REPARADO
1
También tuve que eliminar manualmente obj \ Debug; RebuildAll no lo solucionó, ni idea de por qué ...
Jay Borseth
Mismo problema en una aplicación VS 2017 UWP. La construcción fue para Pagemás bien queApplicationDefinition
Paulustious
2
Build Actioncambia a Pagecuando excluye y vuelve a incluir el archivo
App.xaml
46

Quizás el "Tipo de salida" en propiedades-> Aplicación del proyecto debe ser una "Biblioteca de clases" en lugar de una consola o aplicación de Windows.

Kervin Ramen
fuente
Cuando se utiliza un compilador CLI, el tipo de salida de la Biblioteca de clases se puede especificar mediante un -t:libraryargumento.
Glutexo
21

En caso de que alguien tenga el mismo problema ... Recibí este error y resultó ser mi <Application.Resources>en mi archivo App.xaml. Tenía un recurso fuera de las etiquetas de mi diccionario de recursos, y eso causó este error.

AndyA
fuente
Tuve una variación ligeramente diferente. Tenía etiquetas vacías de Application.Resources y quité las que me arreglaron.
YC
6

En mi caso (después de cambiar el nombre del espacio de nombres de la aplicación manualmente) tuve que volver a seleccionar el objeto de Inicio en las propiedades del Proyecto.

Eugene Griaznov
fuente
1

También puede encontrarse con esto si está trabajando en un proyecto WPF que se inició en VS 2010 (Beta 1) y luego se mudó a VS 2008.

Bajo las propiedades del proyecto, la versión de .NET Framework se desarma (ya que .NET 4.0 no es válido en VS 2008), y por alguna razón eso causa este error.

Si configura el marco .NET (por ejemplo, .NET 3.5), el error desaparece.

Ryan Lundy
fuente
1

Solo en caso de que alguien siga recibiendo el mismo error, incluso con toda la ayuda anterior: tuve este problema, probé todas las soluciones dadas aquí y descubrí que mi problema era en realidad otro error de mi lista de errores (que era sobre una imagen faltante configurada para ser mi pantalla de inicio. Simplemente cambié su ruta a la correcta y luego todo comenzó a funcionar)

leoneboaventura
fuente
1

Tengo el mismo error, pero luego descubrí que escribí una m pequeña en lugar de una M mayúscula en el método Main

Arun Pandey
fuente
Sí, olvidé que distingue entre mayúsculas y minúsculas. ¡Gracias!
Emanuel Vintilă
En cambio, vea, si la "propiedad" de su aplicación se ha definido correctamente un proyecto / clase de inicio predeterminado. stackoverflow.com/questions/9538404
Bimal Poudel
0

Propiedades del proyecto \ Archivo de salida -> Seleccionar biblioteca de clases :)

pixparker
fuente
0

Como qué, supongo que pixparker quería decir, pero no fue lo suficientemente claro, al menos para mí, asegúrese de que ... Todos los "Otros proyectos" tengan un "Tipo de salida" de "Biblioteca de clases" seleccionado mientras ... Solo se selecciona "Un proyecto" como salida "Aplicación de ventana" o "Aplicación de consola" .

Faraz Ahmed Qureshi
fuente