„Projekt z typem wyjściowym biblioteki klas nie może zostać uruchomiony bezpośrednio”

166

Pobrałem projekt C # i chcę debugować projekt, aby zobaczyć, jak działa implementacja algorytmu.

Projekt znalazł się w folderze, w tym folderze znajdują się -

  1. .slnplik i
  2. folder zawierający pliki źródłowe i .csprojplik .

Zainstalowałem Visual Studio i otworzyłem .slnplik obecny w głównym folderze. Projekt został pomyślnie zbudowany, ale kiedy próbuję debugować projekt, pojawia się następujący komunikat:

Nie można bezpośrednio uruchomić projektu z typem wyjściowym biblioteki klas. Aby debugować ten projekt, dodaj projekt wykonywalny do tego rozwiązania, który odwołuje się do projektu biblioteki. Ustaw plik wykonywalny jako projekt startowy.

Dziwne jest to, że nigdzie nie widzę głównej funkcji.

Co powinienem zrobić, aby obejść tę czkawkę?

HaggarTheHorrible
źródło

Odpowiedzi:

173

Projekt, który pobrałeś, kompiluje się do zestawu dll i udostępnia zestaw klas z zaimplementowaną funkcjonalnością.

Do rozwiązania należy dodać nowy projekt z typem wyjściowym aplikacji konsolowej lub aplikacji systemu Windows (kreator VS Dodaj projekt zaoferuje różne szablony projektów).

W nowo dodanym projekcie można zaimplementować logikę, aby przetestować bibliotekę klas.

Typ wyjściowy projektu można znaleźć i zmienić, wykonując następujące kroki:

  1. Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań -> Właściwości.

  2. W otwartej zakładce z właściwościami wybierz aplikację, a pojawi się ComboBox oznaczony etykietą Output Type.

Eugene Cheverda
źródło
7
I nie zapomnij ustawić nowo utworzonego projektu jako projektu startowego (kliknij prawym przyciskiem myszy nowy projekt↦Ustaw jako projekt
startowy
@bugybunny Twój komentarz jest tym, czego brakuje w odpowiedzi powyżej!
trzepaczka
111

Wystarczy kliknąć prawym przyciskiem myszy rozwiązanie projektowe. Pojawi się okno. Rozwiń typowe właściwości. Wybierz opcję Uruchom projekt

Tam po prawej stronie Wybierz przycisk radiowy z Pojedynczym projektem startowym Wybierz tam swój projekt i zastosuj.

Otóż ​​to. Teraz zapisz i zbuduj swój projekt. Uruchom projekt, aby wyświetlić dane wyjściowe.

Suhail Pawane
źródło
60

To rozwiązanie zadziałało, ponieważ nie mogłem znaleźć opcji „Właściwości wspólne”.

  1. Wybierz projekt najwyższego poziomu w Eksploratorze rozwiązań .
  2. Przejdź do projektu iw menu kontekstowym Ustaw jako projekt startowy .

    Ustaw jako projekt startowy

Zobacz także: Projekt z typem wyjściowym biblioteki klas nie może zostać uruchomiony bezpośrednio

Priyank Desai
źródło
To zadziałało również w VS 2015. Musiało stworzyć dla mnie nowy plik web.config, a potem znów działał.
Eric D. Johnson
Pracował dla mnie również w Visual Studio 2019.
user0474975
Milionowe
19

Po prostu musi iść:

Eksplorator rozwiązań -> przejdź do właściwości ---> zmień (projekt pojedynczego uruchomienia) z pliku.dll na .web

Następnie spróbuj go debugować.

Na pewno twój problem zostanie rozwiązany.

Ashish Agrawal
źródło
12

Dziwne jest to, że nigdzie nie widzę głównej funkcji.

To jest dokładnie twój problem. Projekt po prostu tworzy bibliotekę DLL. Nie ma pliku wykonywalnego do uruchomienia.

Będziesz musiał dodać drugi projekt, który jest plikiem wykonywalnym, który odwołuje się do innego projektu i wywołuje coś w nim.

James Curran
źródło
Hej James, OK, dodałem nowy projekt w tym samym rozwiązaniu. Tworzony jest nowy plik .cs, który ma główną funkcję. Teraz do czego mam się odnieść. Masz na myśli dll? Kiedy klikam prawym przyciskiem myszy kartę referencji, pojawia się okno Dodaj odniesienie.
HaggarTheHorrible
Przejdź do karty Projekty. Będzie dostępny zestaw zestawów zdefiniowanych w rozwiązaniu, do których można się odwoływać.
Eugene Cheverda
1
Tak, dokładnie. Nie zapomnij dodać określonych zastosowań, aby mieć możliwość korzystania z klas tej biblioteki.
Eugene Cheverda
7
1) Right Click on **Solution Explorer**
2) Go to the **Properties** 
3) Expand **Common Properties**
4) Select **Start Up Project**
5) click the radio button (**Single Start_up Project**)
6) select your Project name 
7) Then Debug Your project
Chamara
źródło
5

Będziesz potrzebował jakiejś aplikacji (aplikacje konsolowe są moim ulubionym narzędziem do debugowania, ale wystarczy WinForm), która korzysta z Twojej biblioteki klas. Po prostu dodaj nowy projekt (w tym samym rozwiązaniu) aplikacji konsoli lub aplikacji Windows Forms i dodaj odwołanie do bieżącego projektu. Gdy to zrobisz, wykonaj wszystkie potrzebne połączenia, ustaw punkty przerwania i jedź do miasta.

AllenG
źródło
4

Miałem podobny problem podczas próby użycia eksperymentalnej instancji programu Visual Studio 2013. To było w przypadku projektu vsix (tworzenie fragmentów).

Rozwiązaniem było:

Kliknij prawym przyciskiem myszy Projekt w Eksploratorze rozwiązań > Właściwości > Debuguj

Ustawianie akcji początkowej "Start external program"i używanie następującej ścieżki:

C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ devenv.exe

Ta opcja została ustawiona na, "Start project"która nie będzie działać dla biblioteki klas klasy wyjściowej aplikacji, co spowodowało ten sam błąd.

Uwaga: Twój może się różnić w zależności od tego, jak zainstalowałeś VS.

ShaneRoode
źródło
2
    Right Click on "Solution Explorer" -> "Properties"
    Expand "Common Properties"
    Select "Start Up Project"
    click the radio button "Single Start_up Project"
    select your Project name from the drop down list.

Jeśli po wykonaniu powyższych czynności nadal nie działa , spróbuj tego.

    Expand solutions explorer.
    Right click on project name -> "Properties"
    Go to "Application" tab
    Select "Output type" 
 From the drop down list select the appropriate type according to your application.
    "Windows application" or
    "Console application"

Następnie zapisz (ctrl + S)

Spróbuj debugować (F5)

kavinda
źródło
0

Załóżmy, że w rozwiązaniu znajduje się wiele projektów . Wybierz projekt , który chcesz wyświetlić w przeglądarce i wybierz opcję „Ustaw jako projekt startowy” . W twoim wieloprojektowym rozwiązaniu, które było głównym, studio wizualne nie było w stanie zidentyfikować. to był główny problem.

Fardim
źródło
0

Rozwiązaniem błędów jest to, że już otworzyłeś swój projekt, ale przez pomyłkę wybrałeś inną bibliotekę klas .. to jest powód, dla którego ten błąd się wyświetla ... więc co musisz zrobić, po prostu wybierz swój projekt, a następnie kliknij prawym przyciskiem myszy na projekt

po kliknięciu prawym przyciskiem myszy u zobaczysz pole listy i wybierz opcję „ Ustaw jako projekt startowy ”.

Saikat Banik

Saikat Banik
źródło
0

Możesz kliknąć prawym przyciskiem myszy projekt Class Library iz listy rozwijanej wybrać opcję Initialize Interactive C #, która załaduje kontekst projektu i możesz pracować nad nim w sesji interaktywnej.

user2063329
źródło