O programa não contém um método 'Principal' estático adequado para um ponto de entrada

169

De repente, todo o meu projeto parou de compilar, mostrando a seguinte mensagem:

O programa 'path_to_obj_project_folder' não contém um método 'Main' estático adequado para um ponto de entrada

Não fiz alterações nas propriedades do projeto, apenas adicionei algumas classes, movi outras para as pastas. É um projeto de aplicativo WPF, portanto tudo deve estar bem. O ponto de entrada é onde deveria estar, o arquivo App.xaml não foi modificado :(

O que devo fazer para que funcione novamente?

Mr Anderson
fonte

Respostas:

432

Verifique as propriedades do App.xaml . É o Build Actionainda ApplicationDefinition?

Kent Boogaart
fonte
10
Obrigado, isso resolveu parcialmente o problema. Eu havia copiado todos os arquivos de um projeto antigo para um novo Windows Store Appprojeto e o Build Actionfoi definido como em Pagevez de ApplicationDefinition. Voltei para ApplicationDefinition, mas também tive que excluir a pasta obj\Debug.
Richard H
4
+1: Incrível! Verdadeiramente um salva-vidas. Eu estava prestes a criar um novo projeto e copiar tudo, mas isso funcionou. O que eu aprendi: não mexa com App.xaml ... Ele morde.
reSPAWNed
1
Eu também tive que excluir manualmente obj \ Debug; RebuildAll não corrigi-lo, nenhuma idéia porque ...
Jay Borseth
Mesmo problema em um aplicativo VS 2017 UWP. A compilação foi para Pagee nãoApplicationDefinition
Paulustrious
2
Build Actionmuda para Pagequando você excluir e re-incluir o arquivo App.xaml
CSharper
46

Talvez o "Tipo de saída" em propriedades-> Aplicação do projeto deva ser uma "Biblioteca de Classes" em vez de um aplicativo do console ou do Windows.

Kervin Ramen
fonte
Ao usar um compilador CLI, o tipo de saída da Biblioteca de Classes pode ser especificado por um -t:libraryargumento.
Glutexo 9/09/15
21

Apenas no caso de alguém ter o mesmo problema ... Eu estava recebendo esse erro e ele acabou sendo meu <Application.Resources>no meu arquivo App.xaml. Eu tinha um recurso fora das minhas tags do dicionário de recursos e isso causou esse erro.

AndyA
fonte
Eu tive uma variação ligeiramente diferente. Eu tinha tags Application.Resources vazias e a remoção das que foram corrigidas para mim.
YC
6

No meu caso (depois de renomear o namespace do aplicativo manualmente), tive que selecionar novamente o objeto Startup nas propriedades do Project.

Eugene Griaznov
fonte
1

Você também pode encontrar isso se estiver trabalhando em um projeto WPF iniciado no VS 2010 (Beta 1) e depois migrado para o VS 2008.

Nas propriedades do projeto, a versão do .NET framework fica desabilitada (já que o .NET 4.0 não é válido no VS 2008) e, por algum motivo, causa esse erro.

Se você definir a estrutura .NET (por exemplo, .NET 3.5), o erro desaparecerá.

Ryan Lundy
fonte
1

Caso alguém ainda esteja recebendo o mesmo erro, mesmo com toda a ajuda acima: Eu tive esse problema, tentei todas as soluções fornecidas aqui e acabei de descobrir que meu problema era realmente outro erro da minha lista de erros (que era sobre uma imagem perdida definida como minha tela inicial. Eu apenas mudei o caminho para a direita e comecei a trabalhar)

leoneboaventura
fonte
1

Eu recebi o mesmo erro, mas descobri que digitei small m em vez de capital M no método Main

Arun Pandey
fonte
Sim, esqueci que é sensível a maiúsculas. Obrigado!
Emanuel Vintilă
Em vez disso, veja se a "propriedade" do seu aplicativo foi definida corretamente como um projeto / classe de inicialização padrão. stackoverflow.com/questions/9538404
Bimal Poudel
0

Propriedades do projeto \ Arquivo de saída -> Selecionar biblioteca de classes :)

pixparker
fonte
0

Acho que o pixparker queria dizer o que, mas ainda não estava claro o suficiente, pelo menos para mim, garanta que ... Todos os "Outros Projetos" tenham um "Tipo de Saída" de "Biblioteca de Classes" selecionado enquanto ... Somente "One Project" está sendo selecionado como saída "Window Application" ou "Console Application" .

Faraz Ahmed Qureshi
fonte