1
votes

Le projet Visual Studio se construit dans une dll plutôt que dans un exécutable

J'imagine cela comme une question extrêmement stupide, mais lorsque je construis ma solution (application console), cela crée une dll plutôt qu'un exécutable. Est-ce que je fais quelque chose de mal ou je ne comprends tout simplement pas comment cela fonctionne?


5 commentaires

S'agit-il d'un projet .NET Core?


Je pense que c'est (je suis assez nouveau dans VS)


Consultez ce post . J'hésite en quelque sorte à le signaler comme un doublon direct, mais à tout le moins, c'est lié.


Ne devinez pas, regardez le type d'application dans la page de propriétés de votre projet dans Visual Studio.


Veuillez afficher les propriétés d'un projet d'application console ou un groupe de propriétés à partir du fichier cspoj


4 Réponses :


1
votes

S'il s'agit de .Net Framework, il est fort probable que le type de sortie du projet soit défini sur Bibliothèque de classes dans la page des propriétés du projet.

Pour résoudre ce problème, vous devez vous assurer que vous disposez d'une méthode avec une signature de static void Main () et définir le type de sortie sur Application console.

Pour changer le type de sortie:

  1. Cliquez avec le bouton droit sur le nom du projet dans l'explorateur de solutions
  2. Sélectionnez les propriétés
  3. Dans l'onglet Application, remplacez le type de sortie par Application console
  4. Remplacez la liste déroulante des objets de démarrage par la classe qui contient votre Méthode principale.
  5. Enregistrez les propriétés et réessayez de créer / déboguer.

2 commentaires

Exactement le même résultat après avoir fait ceci: /


@smeel - vérifiez si votre projet est framework ou core. Si c'est essentiel, cela ne résoudra pas votre problème.



1
votes

Non, c'est légitime. Au moins pour .NET Core 2.x. Pour .NET Core 3.x, il génère un .EXE. Vous pouvez toujours l'exécuter en exécutant: dotnet foo.dll .

Donc pour l'instant, au lieu de Build, utilisez Publish. Cela générera un .EXE.

Je garde généralement une commande à portée de main pour la générer rapidement:

dotnet publish -c Release -r win10-x64 --self-contained:false


2 commentaires

Comment utiliser cette commande pour l'exporter? Où dois-je le saisir?


@smeel Ouvrez l'invite de commande dans le même répertoire que votre fichier .csproj. Ensuite, lancez simplement ceci.



1
votes

Cliquez avec le bouton droit sur votre projet dans l'Explorateur de solutions et sélectionnez Propriétés en bas du menu contextuel. Sélectionnez le type de sortie approprié, puis comme indiqué sur la capture d'écran.

 entrez la description de l'image ici

Comme mentionné dans une autre réponse ici: dans le cas où votre framework cible est .NET Core , utilisez Publish dans le menu Build de Visual Studio paramètre de largeur Format d'exécution cible , par exemple win-x86 pour créer un format d'application de sortie approprié.

Consultez la référence: Publiez votre Application .NET Core avec Visual Studio


3 commentaires

Cela suppose que le projet d'OP est un cadre plutôt qu'un noyau. Vous voudrez peut-être au moins mentionner qu'il s'agit d'un correctif pour le framework.


Il serait probablement un peu plus utile de dire quelque chose comme «Faites un clic droit sur votre projet dans l'Explorateur de solutions» au lieu de dire «ConsoleApp1». Ce n'est peut-être pas le nom du projet d'OP. Aussi, faute de frappe sur "capture d'écran".


Merci pour vos commentaires. Ajout de la note .NET Core et correction de "sur votre projet"