"Un projet avec un type de sortie Bibliothèque de classes ne peut pas être démarré directement"

166

J'ai téléchargé un projet C # et je souhaite déboguer le projet pour voir comment une implémentation d'algorithme fonctionne.

Le projet est venu dans un dossier, dans ce dossier il y a -

  1. .slnfichier et
  2. un dossier .csprojcontenant des fichiers source et un fichier .

J'ai installé Visual Studio et ouvert le .slnfichier présent dans le dossier principal. J'ai construit le projet avec succès, mais lorsque j'essaye de déboguer le projet, j'obtiens ce message:

Un projet avec un type de sortie de bibliothèque de classes ne peut pas être démarré directement Pour déboguer ce projet, ajoutez un projet exécutable à cette solution qui fait référence au projet de bibliothèque. Définissez le projet exécutable comme projet de démarrage.

La partie étrange est que je ne vois nulle part une fonction principale.

Que dois-je faire pour contourner ce hoquet?

HaggarTheHorrible
la source

Réponses:

173

Le projet que vous avez téléchargé se compile dans un assembly dll et fournit un ensemble de classes avec des fonctionnalités implémentées.

Vous devez ajouter à votre solution un nouveau projet avec le type de sortie de l'application console ou de l'application Windows (l'assistant VS Add Project vous proposera différents modèles de projets).

Dans le projet nouvellement ajouté, vous pouvez implémenter une logique pour tester votre bibliothèque de classes.

Vous pouvez rechercher et modifier le type de sortie du projet en procédant comme suit:

  1. Cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions -> Propriétés.

  2. Dans l'onglet ouvert avec les propriétés, sélectionnez Application et il y aura ComboBox marqué avec l'étiquette de type de sortie.

Eugène Cheverda
la source
7
Et n'oubliez pas de définir le projet nouvellement créé comme projet de démarrage (clic droit sur le nouveau projet newDéfinir comme projet de démarrage)
bugybunny
@bugybunny que vous commentez est ce qui manque dans la réponse ci-dessus!
fouet le
111

Cliquez avec le bouton droit de la souris sur le projet Solution Une fenêtre apparaît. Développez les propriétés communes. Sélectionnez Start Up Project

Dans là, sur le côté droit Sélectionnez le bouton radio avec un projet de démarrage unique Sélectionnez votre projet là-dedans et appliquez.

C'est tout. Maintenant, enregistrez et créez votre projet. Exécutez le projet pour voir la sortie.

Suhail Pawane
la source
60

C'est la solution qui a fonctionné pour moi car je n'ai pas trouvé l'option «Propriétés communes».

  1. Sélectionnez votre projet de niveau supérieur dans l' Explorateur de solutions .
  2. Allez dans Projet, et dans le menu contextuel Définir comme projet de démarrage .

    Définir comme projet de démarrage

Voir aussi: Un projet avec un type de sortie de bibliothèque de classes ne peut pas être démarré directement

Priyank Desai
la source
Cela a fonctionné pour moi également dans VS 2015. Il a fallu me créer un nouveau web.config, puis il a fonctionné à nouveau.
Eric D. Johnson le
A également travaillé pour moi dans Visual Studio 2019.
user0474975
Merci un million, cela a sauvé des heures de recherche sur Google :)
Wolfazb
19

Il faut juste y aller:

Explorateur de solutions -> Aller à Propriétés ---> changer (projet de démarrage unique) de.dll à .web

Essayez ensuite de le déboguer.

Votre problème sera sûrement résolu.

Ashish Agrawal
la source
12

La partie étrange est que je ne vois nulle part une fonction principale.

C'est exactement votre problème. Le projet crée simplement une DLL. Il n'a pas d'exécutable à exécuter.

Vous devrez ajouter un deuxième projet, qui est un exécutable qui fait référence à l'autre projet et qui y appelle quelque chose.

James Curran
la source
Hey James, OK, j'ai ajouté un nouveau projet dans la même solution. Un nouveau fichier .cs est créé qui a une fonction principale. Maintenant, à quoi dois-je faire référence. Pour le dll vous voulez dire? Lorsque je clique avec le bouton droit sur l'onglet Références, j'obtiens une fenêtre Ajouter une référence.
HaggarTheHorrible
Accédez à l'onglet Projets. L'ensemble des assemblys définis dans votre solution sera disponible pour le référencement.
Eugene Cheverda
1
Oui, exactement. N'oubliez pas d'ajouter des utilisations spécifiques pour pouvoir utiliser les classes de cette bibliothèque.
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
la source
5

Vous aurez besoin d'une sorte d'application (les applications de console sont mes préférées pour le débogage, mais un WinForm fera l'affaire) qui utilise votre bibliothèque de classes. Ajoutez simplement un nouveau projet (dans la même solution) d'une application console ou d'une application Windows Forms et ajoutez une référence à votre projet actuel. Une fois que vous avez fait cela, passez tous les appels dont vous avez besoin, définissez vos points d'arrêt et allez en ville.

AllenG
la source
4

J'ai eu un problème similaire en essayant d'utiliser l'instance expérimentale de Visual Studio 2013. C'était pour un projet vsix (création d'extraits de code).

La solution était:

Cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions > Propriétés > Déboguer

Définition de l'action de démarrage "Start external program"et utilisation du chemin suivant:

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

Cette option a été définie pour "Start project"ne pas fonctionner pour le type de sortie d'application Bibliothèque de classes, ce qui a provoqué la même erreur.

Remarque: le vôtre peut différer selon la façon dont vous avez installé VS.

ShaneRoode
la source
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.

Si cela ne fonctionne toujours pas après les étapes ci-dessus, essayez ceci.

    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"

Puis enregistrez (ctrl + S)

Essayez le débogage (F5)

Kavinda
la source
0

Supposons que vous ayez plusieurs projets dans la solution. Sélectionnez le projet que vous souhaitez afficher dans le navigateur et sélectionnez «Définir comme projet de démarrage» . Dans votre soln de projets multiples qui était le principal, le studio visuel n'a pas pu identifier. c'était le problème principal.

Fardim
la source
0

Les solutions d'erreur sont que vous avez déjà ouvert votre projet, mais par erreur, vous avez sélectionné une autre bibliothèque de classes ... c'est la raison pour laquelle cette erreur s'affiche ... alors ce que vous devez faire, sélectionnez simplement votre projet, puis faites un clic droit sur votre projet

après un clic droit, vous pouvez voir la zone de liste et sélectionner l' option " Définir comme projet de démarrage ".

Saikat Banik

Saikat Banik
la source
0

Vous pouvez cliquer avec le bouton droit sur le projet de bibliothèque de classes et dans la liste déroulante, choisir Initialiser C # interactif qui chargera le contexte de votre projet et vous pourrez le travailler dans la session interactive.

user2063329
la source