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?
4 Réponses :
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:
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.
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
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.
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.
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
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"
Projet clic droit> Publier> Configurer
Sélectionnez Mode de déploiement: autonome
Sélectionnez Preferred Target Runtime
Notez le Emplacement cible
Appuyez sur Publier
Vous trouverez maintenant votre exe à l'emplacement cible que vous avez noté
Remarque: L'option par défaut est définie sur le mode dépendant du cadre, qui est pourquoi vous voyez le fichier dll comme sortie et pour l'exécuter, vous pouvez dotnet MyConsoleApp.dll
Publier l'application SelfContained: a>
dotnet publish -c Release -r win10-x64 - self-contents true
Publier l'application SelfContained SingleFile:
dotnet publish -r win10-x64 -c Release / p: PublishSingleFile = true
Publier l'application autonome découpée:
.CSProj
<PropertyGroup> <PublishTrimmed>true</PublishTrimmed> </PropertyGroup>
dotnet publish -c Release -r win10-x64 - self-contents true
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