Program nie zawiera statycznej metody „Main” odpowiedniej dla punktu wejścia

169

Nagle cały mój projekt w ogóle przestał się kompilować, pokazując następujący komunikat:

Program „path_to_obj_project_folder” nie zawiera statycznej metody „Main” odpowiedniej dla punktu wejścia

Nie wprowadziłem żadnych zmian we właściwościach projektu, po prostu dodałem kilka klas, przeniosłem inne klasy do folderów. Jest to projekt aplikacji WPF, więc wszystko powinno być w porządku. Punkt wejścia jest tam, gdzie powinien, plik App.xaml nie został w ogóle zmodyfikowany :(

Co mam zrobić, żeby znów zadziałało?

Panie Anderson
źródło

Odpowiedzi:

432

Sprawdź właściwości pliku App.xaml . Czy Build Actionnadal ApplicationDefinition?

Kent Boogaart
źródło
10
Dzięki, to częściowo rozwiązało problem. Skopiowałem cały plik ze starego projektu do nowego Windows Store Appi Build Actionustawiono na Pagezamiast ApplicationDefinition. Wróciłem do ApplicationDefinition, ale musiałem też usunąć folder obj\Debug.
Richard H,
4
+1: Super! Naprawdę ratownik. Miałem właśnie stworzyć nowy projekt i skopiować wszystko, ale to załatwiło sprawę. Czego się nauczyłem: Nie zadzieraj z App.xaml ... To gryzie.
SPAWNED
1
Musiałem też ręcznie usunąć obj \ Debug; RebuildAll tego nie naprawił, nie mam pojęcia, dlaczego ...
Jay Borseth,
Ten sam problem w aplikacji UWP VS 2017. PageApplicationDefinition
Budowla
2
Build Actionprzełącza się na Pagepo wykluczeniu i ponownym włączeniu pliku App.xaml
CSharper
46

Może „Typ wyjścia” we właściwościach-> Aplikacja projektu musi być „Biblioteką klas” zamiast aplikacji konsoli lub systemu Windows.

Kervin Ramen
źródło
W przypadku korzystania z kompilatora CLI typ wyjściowy biblioteki klas można określić za pomocą -t:libraryargumentu.
Glutexo
21

Na wszelki wypadek, gdyby ktoś miał ten sam problem ... Otrzymałem ten błąd i okazało się, że jest to <Application.Resources>mój plik App.xaml. Zasób znajdował się poza tagami słownika zasobów, co spowodowało ten błąd.

AndyA
źródło
Miałem nieco inną odmianę. Miałem puste tagi Application.Resources i ich usunięcie rozwiązało problem.
YC
6

W moim przypadku (po ręcznej zmianie nazwy przestrzeni nazw aplikacji) musiałem ponownie wybrać obiekt Startup we właściwościach projektu.

Eugene Griaznov
źródło
1

Możesz również napotkać to, jeśli pracujesz nad projektem WPF, który został uruchomiony w VS 2010 (Beta 1), a następnie przeniesiony do VS 2008.

We właściwościach projektu wersja platformy .NET nie jest ustawiona (ponieważ .NET 4.0 nie jest poprawna w VS 2008) iz jakiegoś powodu powoduje ten błąd.

Jeśli ustawisz środowisko .NET (np. Na .NET 3.5), błąd zniknie.

Ryan Lundy
źródło
1

Na wypadek, gdyby ktoś nadal otrzymywał ten sam błąd, nawet przy całej pomocy powyżej: miałem ten problem, wypróbowałem wszystkie podane tutaj rozwiązania i właśnie dowiedziałem się, że mój problem był w rzeczywistości kolejnym błędem z mojej listy błędów (która była o brakującym obrazie ustawionym jako mój ekran powitalny. Właśnie zmieniłem ścieżkę na właściwy i wszystko zaczęło działać)

leoneboaventura
źródło
1

Mam ten sam błąd, ale potem okazało się, że wpisałem małe m zamiast dużego M w metodzie Main

Arun Pandey
źródło
Tak, zapomniałem, że rozróżnia się wielkość liter. Dzięki!
Emanuel Vintilă
Raczej zobacz, czy „właściwość” aplikacji została poprawnie zdefiniowana jako domyślny projekt / klasa startowa. stackoverflow.com/questions/9538404
Bimal Poudel
0

Właściwości projektu \ Plik wyjściowy -> Wybierz bibliotekę klas :)

pixparker
źródło
0

Wydaje mi się, że pixparker chciał powiedzieć, ale nie był wystarczająco jasny, przynajmniej dla mnie upewnij się, że ... Wszystkie "Inne projekty" mają wybrany "Typ wyjścia" z "Biblioteki klas", podczas gdy ... Wybrano tylko „Jeden projekt” jako wyjście „Aplikacja okna” lub „Aplikacja konsoli” .

Faraz Ahmed Qureshi
źródło