"Un progetto con un tipo di output della libreria di classi non può essere avviato direttamente"


166

Ho scaricato un progetto C # e desidero eseguire il debug del progetto per vedere come funziona un'implementazione dell'algoritmo.

Il progetto è arrivato in una cartella, all'interno di questa cartella ci sono -

  1. .sln file e
  2. una cartella che contiene file di origine e un .csprojfile .

Ho installato Visual Studio e ho aperto il .slnfile presente nella cartella principale. Ho creato il progetto correttamente, ma quando provo a eseguire il debug del progetto ricevo questo messaggio:

Un progetto con un tipo Output di Libreria di classi non può essere avviato direttamente Per eseguire il debug di questo progetto, aggiungere un progetto eseguibile a questa soluzione che faccia riferimento al progetto di libreria. Imposta il progetto eseguibile come progetto di avvio.

La parte strana è che non vedo una funzione principale da nessuna parte.

Cosa devo fare per aggirare questo singhiozzo?

Risposte:


173

Il progetto scaricato viene compilato in un assembly DLL e fornisce un insieme di classi con funzionalità implementate.

Dovresti aggiungere alla tua soluzione un nuovo progetto con Tipo di output di Applicazione console o Applicazione Windows (la procedura guidata Aggiungi progetto ti offrirà diversi modelli di progetti).

Nel progetto appena aggiunto, è possibile implementare la logica per testare la libreria di classi.

È possibile trovare e modificare il tipo di output del progetto procedendo come segue:

  1. Fare clic con il tasto destro sul progetto in Esplora soluzioni -> Proprietà.

  2. Nella scheda aperta con proprietà selezionare Applicazione e ci sarà ComboBox contrassegnato con l'etichetta Tipo di output.


7
E non dimenticare di impostare il progetto appena creato come progetto di avvio (fai clic con il pulsante destro del mouse sul nuovo progetto↦ Imposta come progetto di avvio)
bugybunny,

@bugybunny il tuo commento è quello che manca nella risposta sopra!
frusta il

111

Basta fare clic con il tasto destro del mouse sulla soluzione del progetto. Apparirà una finestra. Espandi le Proprietà comuni. Seleziona Avvia progetto

Lì sul lato destro Seleziona il pulsante di opzione con un singolo progetto di avvio Seleziona il tuo progetto e applica.

Questo è tutto. Ora salva e costruisci il tuo progetto. Esegui il progetto per vedere l'output.


60

Questa è stata la soluzione che ha funzionato per me poiché non sono riuscito a trovare l'opzione "Proprietà comuni".

  1. Seleziona il tuo progetto di livello più alto in Esplora soluzioni .
  2. Vai a Progetto e nel menu contestuale Imposta come progetto di avvio .

    Imposta come progetto di avvio

Vedi anche: Un progetto con un tipo Output di Class Library non può essere avviato direttamente


Questo ha funzionato anche per me in VS 2015. Ha dovuto costruirmi un nuovo web.config e poi ha funzionato e funzionato di nuovo.
Eric D. Johnson,

Ha funzionato anche per me in Visual Studio 2019.
user0474975

Grazie
mille

19

Devo solo andare:

Esplora soluzioni -> Vai a Proprietà ---> modifica (progetto di avvio singolo) da.dll a .web

Quindi prova a eseguire il debug.

Sicuramente il tuo problema sarà risolto.


12

La parte strana è che non vedo una funzione principale da nessuna parte.

Questo è esattamente il tuo problema. Il progetto crea semplicemente una DLL. Non ha eseguibili da eseguire.

Dovrai aggiungere un secondo progetto, che è un eseguibile che fa riferimento all'altro progetto e chiama qualcosa in esso.


Ehi James, okay ho aggiunto un nuovo progetto nella stessa soluzione. Viene creato un nuovo file .cs che ha una funzione principale. Ora a cosa dovrei fare riferimento. Alla dll intendi? Quando faccio clic con il pulsante destro del mouse sulla scheda Riferimenti, ottengo una finestra Aggiungi riferimento.
HaggarTheHorrible,

Passa alla scheda Progetti. Ci sarà l'insieme di assiemi definiti nella soluzione disponibile per riferimento.
Eugene Cheverda,

1
Si, esattamente. Non dimenticare di aggiungere usi specifici per avere la possibilità di utilizzare le classi di quella libreria.
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

5

Avrai bisogno di un tipo di app (le app della console sono le mie preferite per il debug, ma lo farà un WinForm) che utilizza la tua libreria di classi. Basta aggiungere un nuovo progetto (nella stessa soluzione) di un'applicazione console o un'applicazione Windows Form e aggiungere un riferimento al progetto corrente. Una volta fatto, fai tutte le chiamate di cui hai bisogno, imposta i tuoi punti di interruzione e vai in città.


4

Ho avuto un problema simile durante il tentativo di utilizzare l'istanza sperimentale di Visual Studio 2013. Questo era per un progetto vsix (Creazione di frammenti).

La soluzione era:

Fare clic con il tasto destro del mouse su Esplora soluzioni > Proprietà > Debug

Impostazione dell'azione di avvio "Start external program"e utilizzo del seguente percorso:

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

Questa opzione è stata impostata su "Start project"quale non funzionerà per il tipo di output dell'applicazione Class Library, che ha causato lo stesso errore.

Nota: i tuoi possono differire a seconda di come hai installato VS.


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.

Se ancora non funziona dopo i passaggi precedenti, prova questo.

    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"

Quindi salva (ctrl + S)

Prova il debug (F5)


0

Supponiamo di avere più progetti nella soluzione. Seleziona il progetto che desideri visualizzare nel browser e seleziona "Imposta come progetto di avvio" . Nel tuo progetto multiplo che era il principale, lo studio visivo non era in grado di identificarlo. questo era il problema principale.


0

Le soluzioni di errore sono che hai già aperto il tuo progetto ma per errore hai selezionato un'altra libreria di classi ... ecco perché questo errore sta mostrando ... quindi quello che devi fare è sufficiente selezionare il tuo progetto quindi fare clic destro sul tuo progetto

dopo il tasto destro del mouse puoi visualizzare la casella di riepilogo e selezionare l' opzione " Imposta come progetto di avvio ".

Saikat Banik


0

È possibile fare clic con il pulsante destro del mouse sul progetto Libreria di classi e dal menu a discesa scegliere Inizializza Interactive C # che caricherà il contesto del progetto e sarà possibile lavorarlo nella sessione interattiva.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.